单选题

若循环队列以数组 Q[0…m-1]作为其存储结构, 变量 rear 表示循环队列中的队尾元素的实际位置, 其移动按 rear=(rear+1) Mod m 进行, 变量 length 表示当前循环队列中的元素个数, 则循环队列的队首元素的实际位置是(     )。

【正确答案】 C
【答案解析】

 可以把循环队列想象成两个长度为 m 的数组, 由队尾的位置找队首的位置, 只需要从 rear 的位置往前数 length-1 个元素即可, 但有可能出现负数的情况, 所以要加上数组的长度 m; 也有可能是正数, 会造成多加了一个 m, 所以要进行一次取模操作, 即最终的结果是(rear + m-(length-1)) Mod m。