此循环队列题,所求的为队内的有效长度
头指针为 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
目前而言
将两个式子经行化简转化就可达到本题的答案