萌新循环队列学习笔记

循环队列:

队列最简单的表示方法就是数组啊;

用数组表示队列,那么普通的方法就是简单的搞两个下标代表队列头,队列尾,然后进队,出队,但是随着入队,出队操作的进行,会使整个队列整体向后移动,队尾指针已经移到了最后,再有元素入队就会溢出,而事实上此时队中并未真的“满员”,这种现象称为“假溢出”。

为了解决队尾溢出而实际上数组仍然有空余空间的问题,一般在队列的顺序存储结构中采用循环队列的方式:rear 和 front 到达数组端点时,能折回到数组开始处,即相当于将数组头尾相接,想象成环状。

当插入和删除操作的作用单元达到数组的末端后,用公式"rear"(或 front ) % 数组长度“取余运算就可以实现折返到起始单元。

方法一:增设一个变量,记录当前队列元素个数的变量SIze,或者用一个变量Flag记录最后一次操作是入队还是出队。

根据变量Size就可以直接判断队列是否是满还是空;根据变量Flag,就可以知道当front等于rear时是满还是空;

方法二:少用一个元素的空间;队满的条件:” (rear+1) % 数组长度 “ 等于 front。队空的条件仍然是:rear等于front;






转载于:https://www.cnblogs.com/keyboarder-zsq/p/6777524.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值