| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【循环队列 / 环形队列】—Java实现 -> 正文阅读 |
|
[数据结构与算法]【循环队列 / 环形队列】—Java实现 |
之前,我们使用链表实现了基础队列,链接放在这里可以去康康哟 https://blog.csdn.net/m0_58672924/article/details/122647558https://blog.csdn.net/m0_58672924/article/details/122647558之所以没有选择数组来实现,是因为每有一个元素出队,数组中所有剩下的元素都需要向前移动一次,因此没有链表高效。 此时,我们就引出了循环队列的概念。 循环队列,又称环形队列,逻辑上是一个环,物理上依然是线性表。 head-指向队列的第一个元素 tail-指向队列最后一个元素的下一个位置 当tail走到数组末尾时,下一步再次返回数组头部(从0开始) ?出队之后的元素就访问不到了,此时逻辑上已经将它删除了,tail向后走到该位置时覆盖它即可。此时就解决了数组队列需要一直搬运元素的问题。 了解循环队列的概念之后,我们就能明白它的几个基础知识:
?图①中最后一个元素的索引就是 tail -1 图②的tail恰好在数组第一个位置,这时最后一个元素下标就是 数组.length -1 综上:数组最后一个元素的索引lastIndex
代码实现:
?运行结果: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:41:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |