本篇笔记是我在B站上跟着尚硅谷教程进行学习,记录的学习笔记,在学习中产生了疑问,并通过查找资料解决了相关问题。
队列介绍
1)队列是一个有序列表,可以用数组或是链表表示。
2)遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。
- front及rear分别记录队列前后端的下标,front随着数据的输出而改变,而rear则是随着数据输入而改变。
代码实现
问题分析并优化:
- 目前数组使用了一次就不能用了,没有达到复用的效果
- 我们要使用算法,将目前的数组改成一个环形的队列 取模%
数组环形队列思路:
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已经表示最后元素的后一位了,这种情况下加一肯定是不对的,后来我查了一些资料。

那么,循环队列为什么用空一个元素的位置呢???
代码实现(循环队列)
到此这篇环形队列(环形队列为什么要空一个)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/43047.html