求队列的算法,具体题目如下!

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:31:27
若用一个人大小为6的数组来实现循环队列,且当前的rear和front的值分别是0和3.从当前队列中删除一个元素,再加入两个元素后,rear和front的值分别是多少?

我是个数学白痴啊,麻烦高人指点一下吧,越具体越好,跪谢跪谢!

我们理解front是写入的指针,rear是队列尾,也是读出的指针。那么你的队列是:
0 1 2 3 4 5
R x x F
上面的F是front,R是rear。
你删除了一个元素,就是读出了一个,那么R就增加1,变成了:
0 1 2 3 4 5
x R x F
然后增加了两个元素,变成了
0 1 2 3 4 5
x R x x x F
所以你的R是1,F是5。
如果再增加,F就要回头了,变成0了。
以上的x是占位用的,否则在浏览器里面会导致R和F对错位置,不好理解。