定义
#define QueueSize 6
typedef struct {//定义
int data[QueueSize];
int fornt,real;//头指针,尾指针
}Queue;
实现
#include"stdio.h"
#include"stdlib.h"
#include"s.h"
void InitQueue(Queue *p){//初始化队列
p->fornt =0;
p->real =0;
}
int EmptyQueue(Queue *p){//探空队列
if(p->fornt ==p->real )
return 1;
else
return 0;
}
int FullQueue(Queue *p){//探满队列
if(p->fornt ==(p->real +1)%QueueSize)
return 1;
else
return 0;
}
void EnterQueue(Queue *p,int x){//元素入队
p->data[p->real ] =x;
p->real =(p->real +1)%QueueSize;
}
int LeaveQueue(Queue *p){//元素出队
int x;
x=p->data [p->fornt ];
p->fornt =(p->fornt +1)%QueueSize;
return x;
}
main(){
Queue *p;
int arr[]={1,2,3,4,5,6};
int i,x;
p=(Queue*)malloc(sizeof(Queue));//分配空间
InitQueue(p);
for(i=0;i<QueueSize;i++){
EnterQueue(p,arr[i]);
}
for(i=0;i<QueueSize;i++){
x=LeaveQueue(p);
printf("%d ",x);
}
system("pause");
}