题目
3.已知循环队列存储在一维数组 A[0…n-1]中,且队列非空时 front 和 rear 分别指向队头元素和队尾元素。若初始时队列为空,且要求第 1 个进入队列的元素存储在 A[0]处,则初始时 front 和 rear 的值分别是( )。A. 0,0B. 0,n-1C. n-1,0D. n-1,n-1
3.已知循环队列存储在一维数组 A[0…n-1]中,且队列非空时 front 和 rear 分别指向队头元素和队尾元素。若初始时队列为空,且要求第 1 个进入队列的元素存储在 A[0]处,则初始时 front 和 rear 的值分别是( )。
A. 0,0
B. 0,n-1
C. n-1,0
D. n-1,n-1
题目解答
答案
B. 0,n-1
解析
步骤 1:理解循环队列的存储结构
循环队列存储在一维数组 A[0…n-1]中,队列非空时 front 和 rear 分别指向队头元素和队尾元素。队列为空时,front 和 rear 都指向同一个位置,即队列的初始状态。
步骤 2:确定队列的初始状态
题目要求第 1 个进入队列的元素存储在 A[0]处,即队列的第一个元素存储在数组的起始位置。因此,初始时 front 和 rear 的值都指向数组的起始位置,即 0。
步骤 3:考虑进队操作
进队操作需要执行 (rear+1) % n,即 rear 的值加 1 后对 n 取模。为了使第 1 个进入队列的元素存储在 A[0]处,初始时 rear 的值应为 n-1,这样在执行进队操作时,rear 的值加 1 后对 n 取模,正好指向 A[0]。
循环队列存储在一维数组 A[0…n-1]中,队列非空时 front 和 rear 分别指向队头元素和队尾元素。队列为空时,front 和 rear 都指向同一个位置,即队列的初始状态。
步骤 2:确定队列的初始状态
题目要求第 1 个进入队列的元素存储在 A[0]处,即队列的第一个元素存储在数组的起始位置。因此,初始时 front 和 rear 的值都指向数组的起始位置,即 0。
步骤 3:考虑进队操作
进队操作需要执行 (rear+1) % n,即 rear 的值加 1 后对 n 取模。为了使第 1 个进入队列的元素存储在 A[0]处,初始时 rear 的值应为 n-1,这样在执行进队操作时,rear 的值加 1 后对 n 取模,正好指向 A[0]。