顺序循环队列数据的个数

顺序循环队列数据的个数,一开始我也不懂!!!!原来如此

老师在上面黑板写了一个“(rear+queue+front)%queue”,我一看为什么要取模,我一脸不知所措。
于是,老师在课堂上叫我们自己自行下去学习循环队列数据里面存储的个数。
自己也下去查了一下循环队列的数据存储个数,很多大神也分享了自己的见解,可是我看懂了一点,不过还是没懂为什么取模。
对于渣渣的我,我不知道,后来仔细想了以下确实要取模。

 下面献丑了,这是对于循环队列个数的一些理解:
 **rear尾指针;front头指针;queue数组长度(队列先进先出)**
 
 说明:为什么rear在空格后面?
 当rear=front时,队列可能表示空,也可能表示满,于是为了区分队空或满,于是rear=front-1。

情况一(图1队列元素不多时):rear—front
在这里插入图片描述

情况二(图2队列元素过多时,指针需要循环以防止假溢出):rear+(queue-front)
在这里插入图片描述

为了可以统一使用公式,于是产生了(rear—front+queue)%queue**。**

说明:为什么要取模?
   **兄弟,我们都知道,队列里面的元素都是不可能超过queue的,所以怎么取模,它的商永远是0,而余数永远是它自己。**

小弟是趁热打铁写的,有什么错误欢迎大神指出!(360度鞠躬)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值