初始化操作:

image.png

循环队列:

用模运算让存储空间在逻辑上变为环状
image.png
image.png

image.png

循环队列的出队操作:

image.png

查:image.png

计算循环队列中的元素个数:
image.png(想一下周期函数,便于理解)

判断循环队列为空/满的方法:

因为循环队列为空时Q.rear=Q.front,为满时也存在Q.rear=Q.front,所以应该使用一些其他的方法判断队列是否为空或者满,下面有三种方法:

方法1:

牺牲一个储存单元
image.png

方法2:

创建一个size变量用来记录此时队列中的元素个数:
image.png

方法3:

创建一个类似于触发器的变量(tag),如果tag=0表示出队,如果tag=1表示进队。
则Q.rear==Q.front&&tag==0时表示队列已满,Q.rear==Q.front&&tag==1时表示空队
image.png

总结:

image.png