C语言数据结构问题。请帮忙假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素
C语言数据结构问题。请帮忙
假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( A )。
A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m
我觉得是B啊。为什么是A呢?为什么要+m,还要%m?应该要+1的去哪了?
用实际例子我可以理解。验证出来是A是对的。但是,为什么?