循环队列模型是:front没有元素,rear有元素。P153
循环队列的存储结构
#define MaxSize 100
typedef int ElemType;
struct SqQueue {
ElemType data[MaxSize];
int front,rear;
};
初始化队列的算法
void InitQueue(SqQueue &qu) {
qu.front=qu.rear=0;
}
判断队空的算法
int QueueEmpty(SqQueue &qu) {
return (qu.front==qu.rear);
}
进队的算法
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;
return 1;
}
出队的算法
int DeQueue(SqQueue &qu,ElemType &x) {
if(qu.front==qu.rear)
return 0;
qu.front=(qu.front+1)%MaxSize;
x=qu.data[qu.front];
return 1;
}
暂无评论