数据结构-3.10.队列的应用

一.树的层次遍历:

新建队列,之后:

首先根节点1入队列,之后他的两个子节点2,3入队列,最后1就可以出队列了:

遍历2,他的两个子节点4,5入队列,最后2就可以出队列了:

再到子节点3,它的子节点入队列方式和之前同理:

遍历到4时,发现它没有子节点,所以4直接出队列即可,无需入子节点。


二.图的广度优先遍历:

新建队列,首先遍历1号结点,当遍历该结点时就要检查和该结点相邻的结点是否被遍历过,此时2,3结点都没有被遍历过,因此可以入队列,最后1结点出队列:

同理处理2结点,与2相邻的1结点已经被处理过,因此无需入队,与2相邻的4结点没被处理过,4结点入队列,最后

2结点出队列:

同理,与3结点相邻的1结点被处理过,5,6结点没被处理过,所以5,6结点入队,最后3结点出队列:

再处理4结点,与4结点相邻的结点都处理过,因此只需4结点出队列即可:

与5结点相邻的结点只有7,8结点没被处理过(6结点已经入队列了),因此只需7,8结点入队列,之后5结点出队列;

之后的结点处理方式与上述同理,直到队列为空就完成了对图的广度优先遍历。


三.队列在操作系统中的应用:

1.先来先服务,服务完的从队头出去,因此这就是电脑只有一个CPU,但能处理多个程序的原因:

2.打印机相对主机而言速度较慢,因此有一个缓冲区,把要打印的内容从主机提取出来存入缓冲区,先来的先打印,之后出缓冲区:


相关推荐
冻柠檬飞冰走茶13 分钟前
PTA基础编程题目集 7-17 爬动的蠕虫(C语言实现)
c语言·开发语言·数据结构·算法
未知违规用户1 小时前
大模型项目: 学习FastAPI 服务器开发
服务器·人工智能·python·学习·fastapi
ljj2535575051__1 小时前
LVS(Linux virual server)
服务器·网络·lvs
東隅已逝,桑榆非晚2 小时前
数据结构常见英文术语速查手册
数据结构
Ivan CloudBay2 小时前
服务器关机后,网站会发生什么?
运维·服务器
程序员小崔日记9 小时前
20块钱注册一年 .COM 域名!Spaceship 最新优惠教程,支付宝即可付款(附优惠码)
服务器·腾讯云·域名
实心儿儿10 小时前
Linux —— 进程间关系和守护进程
linux·运维·服务器
林浅不想努力11 小时前
LVS知识点总结
服务器·云原生·lvs
Dawn-bit11 小时前
Linux磁盘管理详解
linux·运维·服务器·计算机网络·云计算
小poop15 小时前
轮转数组:从暴力到最优,一题掌握算法复杂度分析
数据结构·算法·leetcode