循环队列(循环数组)中元素个数的计算

队列头指针为front,队列尾指针为rear(指向队尾元素),after_rear为队尾元素的后一位置(按顺时针方向),队列容量为maxsize

 

如果用 front == rear 来表示队列为空,也就是说front和rear指向同一个位置,那么:

队列满时:(rear+1) mod maxsize == front

队列中元素个数为:(rear-front+maxsize) mod maxsize

 

如果用 rear == (front-1+maxsize) mod maxsize 来表示队列为空,也就是说front指向rear的下一个位置,那么:

队列满时:(after_rear+1) mod maxsize == front

队列中元素个数为:(after_rear–front+maxsize) mod maxsize

posted @ 2014-09-04 21:52  ITtecman  阅读(4722)  评论(0编辑  收藏  举报