循环队列用数组A[0…m-1]存放其元素值,已知其头尾指针分别是front和rear(且队尾指针rear指向队尾元素的下一个元素),则当前队列中的元素个数是( )。
【正确答案】 A
【答案解析】解析:因为是循环队列,所以应该分为rear>front和rear<front两种情况来讨论。 (1)当rear>front时,队列中元素个数为 rear-front=(rear-front+m)%m 因为0<rear-front<m,所以rear-ront+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选项正确。