题目:将队列存储在下标范围0到(maxqueue-1)的数组中,队列满时数组留有一个空位,试写出Queue类的定义,并给出队空和队满的条件。 答案: 队空条件为(rear+1)%maxqueue=front 队满条件为(rear+2)%maxqueue=front 为什么这么判断,不太理解啊,求助大神。
1 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
用到取模运算,可知这是循环队列,题目没有说明是循环队列,不够严谨。
(1)队列空的条件是rear==front,出队列时front
=
(front+1)%maxqueue,如果此时队列中只有一个元素,则front指向的就与rear的相等,下次出队列时要先判定是否为空,就是根据条件rear==front
(2)队列满时条件判定为(rear+1)%maxqueue
==
front,因为每次入队列后,rear都会向前移动一格,即rear指向的空位其值是不放数据的。
添加回答
举报
0/150
提交
取消