#include
#include
#define QUEEN_SIZE 50
typedef struct QNode{
int data[QUEEN_SIZE];
int front;
int rear;
}Queue;
//初始化队列
Queue InitQueue()
{
Queue *q=(Queue)malloc(sizeof(Queue));
if(q==NULL)
{
printf("InitQueue failde!\n");
exit(1);
}
q->front=0;
q->rear=0;
return q;
}
//判断队列是否满
int FullQueue(Queue *q)
{
return ((q->rear+1)%QUEEN_SIZE==q->front);
}
//判断队列是否为空
int EmptyQueue(Queue *q)
{
return (q->rear==q->front);
}
//入队列
void EnQueue(Queue *q,int data)
{
if(FullQueue(q))
return ;
q->data[++q->rear]=data;
q->rear=(q->rear+1)%QUEEN_SIZE;
}
//出队
int DeQueue(Queue *q)
{
if(EmptyQueue(q))
return 0;
int temp=q->data[++q->front];
q->front=(q->front+1)%QUEEN_SIZE;
return temp;
}