单选题
若循环队列以数组Q[0…m-1]作为其存储结构,变量rear表示循环队列中的队尾元素的实际位置,其移动按rear=(rear+1)MOD m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是______。
A、
rear-length
B、
(rear-length+m)MOD m
C、
(1+rear+m-length)MOD m
D、
m-length
【正确答案】
C
【答案解析】
可以把循环队列想象成两个长度为m的数组,由队尾的位置找队首的位置,只需要从rear的位置往前数length-1个元素即可,但有可能出现负数的情况,所以要加上数组的长度m。也有可能是正数会造成多加了一个m,所以要进行一次取模操作,即最终的结果是(rear+m-(length-1))MOD m。
提交答案
关闭