C++ “顺序队列、循环队列、带链队列”队空队满时,队头队尾指针的情况分析

  • Post author:
  • Post category:其他




顺序队列的三种状态



1. 队空



qu.front == qu.rear

如图所示,当顺序队列队空时,队头指针front和队尾指针rear相同;注意front和rear

不是真正的指针

,而是int型变量,代表元素下标。

注:随着出队入队的操作,当出现队空状态时,队头队尾指针不一定指向第一个元素。



2. 队满



qu.front == 0;qu.rear == max+1


3. 一般状态



qu.front == 0;qu.rear == n;//此时队内元素总数为n-1



循环队列的三种状态



1. 队空



qu.front == qu.rear

如图所示,当循环队列队空时,队头指针front和队尾指针rear相同。



2. 队满



qu.front == qu.rear

如图所示,当循环队列队满时,队头指针front和队尾指针rear相同。



3. 一般状态



qu.front == 0;qu.rear == n; //队内元素总数为n-1



带链队列的三种状态



1. 一般状态



在带链队列中,front和rear是

真正的指针

,指向节点的指针。



2. 队空



lqu->front == NULL 或 lqu->rear == NULL

即,当带链队列为空时,队头指针front和队尾指针rear相同(都为空)。



3. 队内只有一个元素



lqu->front == lqu->rear

与队空的情况相似,当带链队列只有一个元素时,队头指针front和队尾指针rear相同。



4. 队满

带链队列不存在队满的情况。



版权声明:本文为weixin_43971764原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。