#include <stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define MaxSize 100
typedef int QueueElemType;
typedef int Status;
typedef struct
{
QueueElemType *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue *Q)
{
Q->base=(QueueElemType *)malloc(MaxSize*sizeof(QueueElemType));
if(!Q->base) exit(0);
Q->front=Q->rear=0;
return 1;
}
Status QueueLength(SqQueue *Q)
{
return (Q->rear-Q->front+MaxSize)%MaxSize;
}
Status EnQueue(SqQueue *Q,QueueElemType e)
{
if((Q->rear+1)%MaxSize==Q->front) return 0;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MaxSize;
return 1;
}
Status DeQueue(SqQueue *Q,QueueElemType *p)
{
if(Q->front=Q->rear) return 0;
*p=Q->base[Q->front];
Q->front=(Q->front+1)%MaxSize;
return 1;
}