基本队列的逻辑 是先进先出
循环队列的逻辑遵循基本队列的逻辑先进先出 但是在空间利用上 我们把他想象问一个闭环 达到重复利用空间的目的
举个例子
一间教室 有前后门 现在规定 学生有学生从后门进 然后从第一排一个位置开始坐座位 出去从前门出 从第一排 第一个位置开始出去
现在 我们给教室指定 只能坐50+ 1(空位)个人 当发现最后一排倒数第二个座位已经被占后,我们就去看之前的第一个位置 还有没有人 如果没有人我们就又从第一个位置开始坐人 当然出去的时候 每出去一个人 就把下一个人 标记为开始出去的人 而且座位会保留 每进来一个人 就要标记最后进来的位置 这样 我们就达到了 位置的重复利用
所以 我们要记录 每次最后进来的人的位置 以及 每次出去的位置 考虑的情况 坐到最后的位置 前面有没有人出去 以及 最后进来的人 的位置 加1 是不是跟前一次出去的位置是一样的 如果是一样的 说明位置已经坐满 无法再进人了 或者当要达到这种条件之前 提前给 教室加座位
如果有不对的地方 欢迎指正