#include<stdio.h>
#include<stdlib.h>
#define MAXQSIZE 100
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType *base;
int front;
int rear;
}SqQueue;
//初始化循环队列
Status InitQueue(SqQueue &Q)
{
Q.base=(ElemType *)malloc(MAXQSIZE*sizeof(ElemType));
if(!Q.base) return -1;
Q.front = Q.rear = 0;
return 0;
}
//get the queue length
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front+1+MAXSIZE)%MAXSIZE;
}
//插入一节点
Status InsertQueue(SqQueue &Q,int e)
{
if((Q.rear + 1) % MAXSIZE == Q.front) return -1;
Q.base[Q.rear] = e;
Q.rear=(Q.rear+1)%MAXSIZE
}
//删除一节点
Status DeleteQueue(SqQueue &Q,int &e)
{
if(Q.front == Q.rear) return ERROR;
e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXSIZE;
}