循环队列可以看成一个环形
存储空间为 Q(1:m)意思就是说下面图形可以分为8块,m就是8,8块里面每一个可以存一个数
初始情况下,环形是没有数据的,空的
假设队头(front)和队尾(rear)在这个位置,当然你也可以选其他位置,最后结果是一样的
当插入一个元素以后变成这样了,队列(rear)顺时针移动一位,队列就有1个元素了
元素插入满了以后,是不是队头(front)和队尾(rear)有在同一个位置了,所以当front==rear的时候,队列为空或者队列为满的状态
这种状态来同学们说说有几个元素,队列中?
3个元素是吧
那么现在我们来删除一个元素,看看会变成什么样,如下图,删除后队头(front)会顺时针移动一个位置
好那问题来了看下面的问题
假设有m块元素,front和rear都在m的位置,m位置随意都可以,结果是一样的
经过一系列入队和出队,这个我们直接不管,混淆视听的,我们只看结果,结果如下图,要让rear在下左边的图所在位置就是m-1,那么我们必须填充元素到下右图,所以答案是元素个数为m-1
网友评论