15.2队列的应用
队列
定义:一种可以实现“先进后出”的存储结构
分类:
-
链式队列 ------ 用链表实现
-
静态队列 ------ 用数组实现
静态队列通常必须是循环队列
循环队列的讲解:对队列长度取余来表示指针位置
-
静态队列为什么必须是循环队列
-
循环队列需要几个参数来确定
- 两个参数
- 两个参数不同场合有不同含义
-
循环队列各个参数的含义:初学者记住
-
队列初始化:
font和rear的值都是零
-
队列非空:
font代表的是队列的第一个元素
rear代表的是队列的最后一个有效元素的下一个元素
-
队列空:
font和rear的值相等,但不一定是零
-
-
循环队列入队伪算法讲解
-
两步完成:
-
将值存入r所代表的位置
-
错误写法:r = r+1
正确写法:r = (r + 1) % 数组的长度
-
-
-
循环队列出队伪算法讲解
- f = (f + 1) % 数组的长度
-
如何判断循环队列是否为空
- front和rear相等,则队列一定为空
-
如何判断循环队列是否已满
-
预备知识:
front 和 rear之间,因为循环周期的存在不存在大小规律
-
两种方式:
-
多增加一个表标识参数
-
少用一个元素(通常使用第二种方式)
-
伪代码:
if( (r+1)%数组长度 == f )
已满
else
不满
队列算法
- 入队
- 出队
队列的具体应用:
- 所有和时间有关的操作都与队列有关
-
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人