复习##ADT3队列

ADT3队列
队列是一个较为简单的ADT,它满足先进先出的原则
实际上队列用链表来表示是非常方便的,但我们的直观印象还是数组或者是循环数组。教材上说队列可以在概率论中有一些应用,挺神奇的还是

我们以数组为例:
队列的ADT中最主要的是两个指针(不一定是真的指针,就是标记位置的变量即可)Rear和Front,以及储存数据的数组。
入队的时候Rear后移一位,并把数据存入到当前的位置;
出队的时候Front指向的位置的元素被弹出,Front后移一位;
在这种思路下,我们初始化的时候Front最好置为1,Rear最好置为0;

需要注意的内容:
Rear和Front后移之后可能会超过MAXSIZE,这需要我们及时模上MAXSIZE来达成循环数组的功能
有些时候Front和Rear之间会留出一个空位来,以便判断队列是否已经满了(实际上这样的操作下并没有满,中间空了一个格子,(Front-Rear)%MAXSIZE应该是2
这样操作也有不方便的地方,有点违背统一的原则。有种不优雅的方式,就是检查Front下面的元素是否是初始时的没有元素入队是的数组的元素。(因为判断是否满的问题就在于Front-Rear模上MAXSIZE可能在空和满的情况下是相同的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值