当前位置:网站首页 > 编程语言 > 正文

环形队列(环形队列为什么要空一个)



 本篇笔记是我在B站上跟着尚硅谷教程进行学习,记录的学习笔记,在学习中产生了疑问,并通过查找资料解决了相关问题

队列介绍

1)队列是一个有序列表,可以用数组或是链表表示。

2)遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。

  • front及rear分别记录队列前后端的下标,front随着数据的输出而改变,而rear则是随着数据输入而改变。
image-20200708160054824

代码实现

 

问题分析并优化:

  • 目前数组使用了一次就不能用了,没有达到复用的效果
  • 我们要使用算法,将目前的数组改成一个环形的队列 取模%

数组环形队列思路:

1、front变量的含义做一个调整:front就指向队列的第一个元素,就是是说arr[front]就是队列的第一个元素,front初始值为0;

2、rear变量的含义做一个调整:rear指向队列的最后一个元素的后一个位置,rear的初始值为0;

3、队列满的条件:(rear+1)%maxSize ==front

4、队列空的条件是:rear == front

5、此时队列的有效长度是: (rear+maxSize-front)%maxSize

遇到的问题(循环队列空一个元素的位置)

在得到队列满的条件:(rear+1)%maxSize ==front时,我充满了疑惑,怎么算都觉得在rear已经表示最后元素的后一位了,这种情况下加一肯定是不对的,后来我查了一些资料。
别人规定的循环队列

那么,循环队列为什么用空一个元素的位置呢???

代码实现(循环队列)

到此这篇环形队列(环形队列为什么要空一个)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
  

                            

版权声明


相关文章:

  • 分层分析图是怎么做出来的(分层分析图是怎么做出来的呢)2026-04-03 21:09:09
  • xmouse怎么快捷键关闭(xmouse设置组合键)2026-04-03 21:09:09
  • 显示你的本机信息(桌面显示本机信息)2026-04-03 21:09:09
  • 查看文件权限及所有者(查看文件的权限)2026-04-03 21:09:09
  • sigmoid输出值(logisim输出值为e)2026-04-03 21:09:09
  • 哔哩哔哩二维码登录手机(哔哩哔哩二维码登录手机号怎么改)2026-04-03 21:09:09
  • ubuntu20更新源(ubuntu怎么更新源)2026-04-03 21:09:09
  • dos2unix命令使用方法(dos2linux)2026-04-03 21:09:09
  • 书旗小说怎么看目录啊(书旗小说app怎么看目录)2026-04-03 21:09:09
  • 发送验证码为什么收不到短信(发送验证码手机收不到验证码是什么原因)2026-04-03 21:09:09
  • 全屏图片