//4.1.1 顺序队的定义
typedef struct
{
ElemType data[MaxSize];
int front,rear; //队首和队尾指针
}SqQueue; //声明顺序队类型
//4.1.2 初始化队列
void InitQueue(SqQueue &qu)
{
qu.front = qu.rear = 0;
}
//4.1.3 判断队列是否为空
int QueueEmpty(SqQueue qu)
{
return(qu.front == qu.rear);
}
//4.1.4 进队
int EnQueue(SqQueue &qu,ElemType x)
{
if((qu.rear + 1) % MaxSize == qu.front) //队满
return 0;
qu.rear = (qu.rear + 1) % MaxSize;
qu.data[qu.rear] = x; //元素 x 进队
return 1;
}
//4.1.5 出队
int DeQueue(SqQueue &qu,ElemType &x)
{
if(qu.front == qu.rear) //队空返回 0
return 0;
qu.front = (qu.front + 1) % MaxSize;
x = qu.data[qu.front]; //元素 x 出队
return 1;
}