栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构 | 队列的C++运用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构 | 队列的C++运用

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

——《百度百科》

目录

构造

相关函数

适用场景

循环队列 

链队列 


构造

队列 又被称为 先进先出 (First In First Out) 的线性表,简称 FIFO 队列。

其构造函数如下:

queue queue;

判断队列空的方法:队首标志等于队尾标志时即为对空。判断队列满的方法:队尾加1为队首即为队满。

相关函数

queue.empty():用于判断队列内是否还含有元素,队列为空则返回true,否则返回falsequeue.size():返回队列中元素的个数queue.pop():删除队列首元素但不返回其值queue.front():返回队首元素的值,但不删除该元素queue.push():在队尾压入新元素queue.back():返回队列尾元素的值,但不删除该元素

适用场景

从上至下打印二叉树实现滑动窗口...

循环队列 

循环队列即将队列队尾和队首相连,可通过标志位来进行判别。

队列的队尾标志+1即等于其队首标志,这就代表这样的队伍表示为循环队列。

在循环队列中,当队列为空时,有front = rear;当所有队列空间全占满时,也有front = rear。

为了区别这两种情况,规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。

 因此,队列判空的条件是front = rear,而队列判满的条件是front =(rear+1)%MaxSize。

链队列 

 链队列即为基于链表的队列,对于链队列,不需要考虑O(n)的空间移动问题,只需要确定链表的哪一头将作为队首,哪一头将作为队尾即可。

目的是保证能够像队列尾部填充元素,同时也能在链表头结点处删除元素。

个人学习整理用,欢迎纠正与讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号