单选题 循环队列用数组A[0…m-1]存放其元素值,已知其头尾指针分别是front和rear(且队尾指针rear指向队尾元素的下一个元素),则当前队列中的元素个数是______。
  • A.(rear_front+m)%m
  • B.(rear-front+1)%m
  • C.rear-front-1
  • D.rear-front
【正确答案】 A
【答案解析】[解析] 因为是循环队列,所以应该分为rear>front和rear<front两种情况来讨论。 (1)当rear>front时,队列中元素个数为 rear-front=(rear-front+m)%m 因为0<real-front<m,所以rear-front+m与m取余后结果还是。rear-front。 (2)当rear<front时,队列中元素个数为 m-(front-rear)=rear-front+m=(rear-front+m)%m 因为0<rear-front+m<m,所以rear-front+m与m取余后结果还是rear-front+m。 综合(1)、(2)可知,A选项正确。