
此循环队列题,所求的为队内的有效长度
头指针为 front
尾指针为 rear
循环队列长度为 N,最多存储N-1个数据
假设 N=5
即循环队列长度为 5 最多存储4个数据
可以按照rear 与 front的大小关系将问题划分为一下三个部分
一.rear > front时

此时,rear - front 即为队内有效长度
二.rea = front时
也可以用 rear - front来表示此时的队内有效长度
三.rear < front时

以此题为例子
此时可以看出实际上,队内有效长度为 3
三个长度可以分为两部分 rear一部分(1份数据)
front一部分(2份数据)
rear部分的数据正好等于rear的小标数
而front的下标为3,可以将front部分的数据数理解为fronr到队尾存在几分数据
即 N-front
综上所述:队内有效长度为 rear-front+N
目前而言

将两个式子经行化简转化就可达到本题的答案

博客详细解析了在循环队列中如何根据头指针front和尾指针rear的关系计算队内有效长度。当rear大于front时,队内有效长度为rear-front;rea等于front时,仍为rear-front;rear小于front时,队内有效长度为(rear-front)+N。通过这个方法,可以准确计算循环队列在不同情况下的实际存储数据数量。

被折叠的 条评论
为什么被折叠?



