//queue.h
#define MAXSIZE 12
typedef int elemType;
typedef struct{
elemType array[MAXSIZE]; //队列元素
int front;
int rear;
}CirQueue;
CirQueue *InitQueue();
void EnterQueue(CirQueue *Q, elemType data);
void DeleteQueue(CirQueue *Q);
void DisplayQueue(CirQueue *Q);
//queue.c
CirQueue *InitQueue()
{
CirQueue *Q;
Q = (CirQueue*)malloc(sizeof(CirQueue));
Q->front = Q->rear = 0;
return Q;
}
void EnterQueue(CirQueue *Q, elemType data)
{
if((Q->rear+1)%MAXSIZE == Q->front)
{
printf("queue is full\n");
}
else
{
Q->array[Q->rear] = data;
Q->rear=(Q->rear + 1)%MAXSIZE;
}
}
void DeleteQueue(CirQueue *Q)
{
if(Q->front == Q->rear)
{
printf("queue is empty\n");
}
else
{
Q->front = (Q->front + 1)%MAXSIZE;
}
}
void DisplayQueue(CirQueue *Q)
{
int i;
for(i=Q->front; i!=Q->rear; i=(i+1)%MAXSIZE)
{
printf("%d ",Q->array[i]);
}
}