题目
循环队列存储在数组A [0..m]中,则入队时的操作为( )。A. rear=rear+1B. rear=(rear+1)%(m一1)C. rear=(rear+1)%mD. rear=(rear+1)%(m+1)
循环队列存储在数组A [0..m]中,则入队时的操作为( )。
A. rear=rear+1
B. rear=(rear+1)%(m一1)
C. rear=(rear+1)%m
D. rear=(rear+1)%(m+1)
题目解答
答案
D. rear=(rear+1)%(m+1)
解析
步骤 1:理解循环队列的存储方式
循环队列是一种特殊的队列,它使用数组进行存储,但与普通队列不同的是,它将数组的最后一个位置与第一个位置连接起来,形成一个环形结构。这样可以避免普通队列中可能出现的“假溢出”问题。
步骤 2:确定入队操作的正确方式
在循环队列中,入队操作需要将新元素添加到队尾,同时更新队尾指针。由于队列是循环的,当队尾指针到达数组的末尾时,需要将其重置为数组的起始位置。因此,需要使用取模运算来实现这一操作。
步骤 3:选择正确的取模运算
数组A的索引范围是[0, m],因此数组的长度为m+1。为了确保队尾指针在到达数组末尾时能够正确地重置为数组的起始位置,需要使用(m+1)作为取模运算的模数。因此,正确的入队操作应该是rear=(rear+1)%(m+1)。
循环队列是一种特殊的队列,它使用数组进行存储,但与普通队列不同的是,它将数组的最后一个位置与第一个位置连接起来,形成一个环形结构。这样可以避免普通队列中可能出现的“假溢出”问题。
步骤 2:确定入队操作的正确方式
在循环队列中,入队操作需要将新元素添加到队尾,同时更新队尾指针。由于队列是循环的,当队尾指针到达数组的末尾时,需要将其重置为数组的起始位置。因此,需要使用取模运算来实现这一操作。
步骤 3:选择正确的取模运算
数组A的索引范围是[0, m],因此数组的长度为m+1。为了确保队尾指针在到达数组末尾时能够正确地重置为数组的起始位置,需要使用(m+1)作为取模运算的模数。因此,正确的入队操作应该是rear=(rear+1)%(m+1)。