问题
单项选择题
设循环队列Q的定义中有rear和len两个域变量,其中rear表示队尾元素的指针,len表示队列的长度,如下图所示(队列长度为3,队头元素为e)。设队列的存储空间容量为M,则队头元素的指针为()。
A.(Q.rear+Q.len-1)
B.(Q.rear+Q.len-1+M)%M
C.(Q.rear-Q.len+1)
D.(Q.rear-Q.len+1+M)%M
答案
参考答案:D
解析:
[要点解析] 设队列的队头指针为front,front指向队头元素。队列的存储空间容量为M,说明队列中最多可以有M个元素;队列的长度为len,说明当前队列中有len个元素。则有:
Q.rea=(Q.front+Q.len-1)%M
Q.front=(Q.rear-Q.len+1+M)%M
[*]