数组队列或者说静态队列,一般来说都是循环队列。
1.静态队列为什么必须是循环队列?
如果我们按照传统的方式使用数组,队列的操作方式是:指向第一个节点的f和指向最后一个节点的下一个节点的r都只能增加或者减少,那么可能造成内存使用一遍之后就再也不能使用了,造成极大的浪费。而使用循环队列,则可以在f或者r到头的时候又回去这样循环起来。
2.循环队列需要几个参数确定及各参数的含义?
两个参数:指向第一个节点的f和指向最后一个节点的下一个节点的r。这两个参数在不同的场合有不同的含义。
队列初始化:其值都是0
队列非空:队列的第一个节点和最后一个节点的下一个节点
队列为空:相等,不一定为0
3.入队的伪算法?
将值存入r代表的位置
错误的写法:r=r+1正确的写法:r=(r+1)%数组的长度
4.出队的伪算法?
f=(f+1)%数组的长度
5.如何判断循环队列是否为空?
r=f就表示为空
6.如何判断循环队列是否已满?
(r+1)%数组的长度==f