循环队列用数组A[0…m-1]存放其元素值,已知其头尾指针分别是front和rear(且队尾指针rear指向队尾元素的下一个元素),则当前队列中的元素个数是( )。

admin2019-12-10  6

问题 循环队列用数组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<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选项正确。
转载请注明原文地址:https://jikaoti.com/ti/dyDjFFFM
0

相关试题推荐
最新回复(0)