循环队列-详细总结

1)为什么会有循环队列?

为充分利用向量空间,克服"假溢出"现象的方法是。
假溢出:在顺序存储的队列中存在假溢出。
队列:rear进入,front出(尾进头出/先进后出)
顺序存储结构的队列假溢出:

队列假溢出

2)循环队列的定义?

最后的指针不是null,而是指向头指针,就叫做循环队列。
或 将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量
我们规定循环队列属性:
最后留出一个空位置。
Rear指向的是空位置。(方便直接塞入值)
Front指向的是有数据位置。(方便直接取出值)

3)循环队列为什么要牺牲一个存储空间?
如下图:无法判断是否队满或队空,
队空:front == rear
队满:front == rear
上面都是 front == rear 无法判断队空和队满

队空和队满的情况

4) 如何判断队空,队满呢?

我们规定:
(rear+1)%n == front  队满
 Rear == front      队空
如上图:为了满足规定,我们需要牺牲一个存储单元。这样就可以区分队空和队满的情况。

猜你喜欢

转载自blog.csdn.net/newVenues/article/details/78768081