题目
9.若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3,当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别为多少?( )A. 1 和 5B. 2 和 4C. 4 和 2D. 5 和 1
9.若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3,当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别为多少?( )
A. 1 和 5
B. 2 和 4
C. 4 和 2
D. 5 和 1
题目解答
答案
B. 2 和 4
解析
循环队列的核心特点是数组首尾相连,通过取模运算实现循环。front指向队列头元素的前一个位置,rear指向队列尾元素的当前位置。队列空的条件是front == rear,队列满的条件是(rear + 1) % size == front。
本题中,数组大小为6,初始front=3,rear=0,说明队列中有3个元素。操作步骤为:删除一个元素(front后移),加入两个元素(rear后移两次)。需注意循环队列的边界条件。
初始状态
- 数组大小为6,
front=3,rear=0。 - 队列元素数量:
(0 - 3 + 6) % 6 = 3,元素分布在索引4、5、0。
删除一个元素
- 操作:
front = (front + 1) % 6 = 4。 - 队列元素数量变为2,
front=4,rear=0。
加入两个元素
- 第一次入队:
rear = (0 + 1) % 6 = 1。- 队列元素数量变为3。
- 第二次入队:
rear = (1 + 1) % 6 = 2。- 队列元素数量变为4。
最终状态
front=4,rear=2,对应选项B。