【 3-1-10 】 设循环队列的存储容量为 maxSize ,队头和队尾指针分别为 front 和 rear 。若有一个循环队列 Q ,可应用下列语句( )计算队列元素个数? A . Q.rear-Q.front B . Q.rear-Q.front+1 C . (Q.rear-Q.front)%maxSize+1 D . (Q.rear-Q.front+maxSize)%maxSize
A.
错误
B.
同样错误
C.
结论不正确
D.
选 D 。 rear 与 front 在同一方向转圈,有时 rear > front ,有时 rear < front 。因此 rear-front 可能为负,此时 rear-front+maxSize 正好是队列元素个数;但当 rear > front 时 rear-front+maxSize 超出队列数组的范围,所以用 (Q.rear-Q.front+maxSize)%maxSize 才能得到队列元素个数。