发布网友 发布时间:2024-02-20 22:08
共1个回答
热心网友 时间:2024-11-14 21:47
判断一个循环队列q(最多n个元素)为满的条件是Q->front==(Q->rear+1)%n
队列的存储结构
1、队列的物理存储可以用顺序存储结构,也可用链式存储结构。相应队列的存储方式也分为两种,即顺序队列和链式队列。
2、顺序队列可以用一维数组表示如下:#define MAXQSIZE 100 //最大队列长度Typedef struct {QElemType *base; //初始化的动态分配存储空间int front; //头指针int rear; //尾指针}SqQueue。
循环队列的基本操作语句
1、队列的初始:front=rear=0;
2、元素入队:base[rear]=x; rear++;
3、元素出队:x=base[front];front++;
4、空队标志:front==rear;
5、队满标志:为了防止队满标志和队空标志一样,则会少用一个元素空间,即队列空间大小为m时,有m-1个元素就认为是队满。这样判断队空的条件不变,即当头、尾指针的值相同时,则认为队空;而当尾指针在循环意义上加1后是等于头指针,则认为队满。
因此,在循环队列中队满的条件是:(rear+1)%MAXQSIZE==front。