土豆肉丝儿工程师之-java算法第五篇-数组模拟环形队列
正如上一篇小编所说
普通队列相对简单,,数组用过一次不能再次使用,,,
那么如何让数组能够复用呢,,,小编来说一说这种情况。。。
环形队列数组的模拟过程如下图
环形-----是我们通过取模运算在逻辑上实现闭环(注意内存中是没有这种数据结构的),使得队列头尾部指针在这个闭环内能够周而复始重复使用的一个概念,正如上图所示:
接下来我们来说该实现涉及的几个变量。。。。。
1 头指针
front 指向队列的第一个元素 ,也就是说arr[front ] front 初始值是0
2 尾指针
指向队列的最后一个元素的后一个位置(向上的方向)。。。。
因为希望空出一个空间--目的是当rear满的时候 rear可以判断是否是满 还是空的两种情况
也就是说 如果这个数组长度为3,那么只能存两个元素 预留一个空间来做判断。。。。
3 maxSize
数组最大长度 ---实际最大存储的只有maxSize-1个元素 。。因为要预留一个空间位做判断
接下来用图示说明添加和取数据的过程:
okay 小编开始上代码帮助理解:
okay 最后我们来测试一下结果:
可以看到当数组长度为3时--只能添加两个元素。。。。
okay 这就是小编的全部代码了,,,希望对您有所帮助。。。see you