#include <stdio.h>
#include <stdlib.h>
#define QueueSize 100;
typedef char DataType;
typedef struct
{
DataType data[QueueSize];
int front,rear;
}CirQueue;
CirQueue Q;
void InitQueue(CirQueue * Q)
{
Q->front=Q->rear=0;
}
int QueueEmpty(CirQueue * Q)
{
return Q->front==Q->rear;
}
int QueueFull(CirQueue * Q)
{
return (Q->rear+1)%QueueSize==Q->front;
}
void EnQueue(CirQueue * Q,DataType x)
{
if(QueueFull(Q))
{
printf("该队列已满\n");
exit(0);
}else
{
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%QueueSize;
}
}
DataType DeQueue(CirQueue * Q)
{
DataType x;
if(QueueEmpty(Q))
{
printf("该队列是空\n");
exit(0);
}else
{
x=Q->data[Q->front];
Q->front=(Q->front+1)%QueueSize;
return x;
}
}
DataType GetFront(CirQueue * Q)
{
if(QueueEmpty(Q))
{
printf("该队列是空\n");
exit(0);
}else
{
return Q->data[Q->front];
}
}