土豆肉丝儿工程师之-java算法第五篇-数组模拟环形队列

正如上一篇小编所说

普通队列相对简单,,数组用过一次不能再次使用,,,

那么如何让数组能够复用呢,,,小编来说一说这种情况。。。

环形队列数组的模拟过程如下图

 

 

环形-----是我们通过取模运算在逻辑上实现闭环(注意内存中是没有这种数据结构的),使得队列头尾部指针在这个闭环内能够周而复始重复使用的一个概念,正如上图所示:

 

接下来我们来说该实现涉及的几个变量。。。。。

1 头指针
front 指向队列的第一个元素 ,也就是说arr[front ] front 初始值是0

2 尾指针
指向队列的最后一个元素的后一个位置(向上的方向)。。。。
因为希望空出一个空间--目的是当rear满的时候 rear可以判断是否是满 还是空的两种情况
也就是说 如果这个数组长度为3,那么只能存两个元素  预留一个空间来做判断。。。。

3 maxSize
数组最大长度  ---实际最大存储的只有maxSize-1个元素 。。因为要预留一个空间位做判断

 

接下来用图示说明添加和取数据的过程:

 

 

okay 小编开始上代码帮助理解:

 

 

 

 

 

 

okay 最后我们来测试一下结果:

 

 

可以看到当数组长度为3时--只能添加两个元素。。。。

 

 

okay 这就是小编的全部代码了,,,希望对您有所帮助。。。see you 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值