2.环形队列
计算正常队列的有效数字
正常数列就是我们之前学到的,数值只能一次性不能重新循环的版本,在那个版本里面计算有效数值非常简单
于是我们可以想象一个无法循环的循环队列,这听起来很怪,但是我们可以通过简化过后的循环队列来算值
有效数值 = rear − front
但是这里注意了,我们的rear并非真的是指向我们的最后一个元素,而是指向最后一个元素的后一个位置,所以公式应该变为
有效数值=rear+1−front
当我们的索引超出队列,使用百分号让他回来
使用%可以让那些超过的数字回到队列里面来
比如当我们的rear已经指向了队列.length(实际上这是一个虚拟的位,
实际上指向 - 队列.length - 1),这已经没有下一位,于是我们要想办法让他回到我们的队列开头
我们可以看到当我们队列长度为5的时候,不管我们的数值有多大,最终都无法超过5,请看下方GIF

