若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0,3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
A. 1和5 B. 2和4 C. 4和2 D. 5和1
队满: Q.front == (Q.rear + 1) % n 队空: Q.front == Q.rear
入队:Q.rear=(Q.rear+1)% n
出队:Q.front=(Q.front+ 1) % n
队列是3 4 5 0,其中front是3,rear是0. 删除一个元素,从front删除,变成了4 增加两个元素,从rear增加,变成了1 2 最终变成了 4(front) 5 0 1 2(rear)
3(front)2 1 0(rear)
2(front)1 0 6(rear)
2(front)1 0 6 5 4(rear)
循环队列是解决假溢出的问题,通常把一维数组看成首尾相接。在循环意义下的加1运算通常用求模运算来实现。所以入队和出队时的操作分别为:rear=(rear+1)%m,front=(front+1)%m。
根据队列的性质,先进先出,front删rear增
rear增front删
链接:/questionTerminal/0920a1e643774e529ce016a85ed231b2
队列是3 4 5 0,其中front是3,rear是0.
删除一个元素,从front删除,变成了4
增加两个元素,从rear增加,变成了1 2
最终变成了 4(front) 5 0 1 2(rear)
B
用户登录可进行刷题及查看答案
登录后提交答案