数据结构-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.打印机相对主机而言速度较慢,因此有一个缓冲区,把要打印的内容从主机提取出来存入缓冲区,先来的先打印,之后出缓冲区:


相关推荐
云边云科技_云网融合1 分钟前
从 POS 机到访客 Wi-Fi:零售门店安全建设的完整解法
服务器·网络·数据库
hiahiahia12333 分钟前
Message 和对话
服务器·前端·数据库
重生之小比特36 分钟前
【Linux系统】07 进程状态
linux·运维·服务器
土星云SaturnCloud1 小时前
土星云边缘计算+AI视觉+视频存管:连锁汽修数字化升级实践
服务器·人工智能·ai·边缘计算
张洛闻Eren1 小时前
Ansible【第二课】:实施 Ansible Playbook
linux·运维·服务器·云原生·kubernetes·k8s·ansible
启博网络2 小时前
启博安企服务器与ERP加速服务器如何区分?一文讲透
运维·服务器
信奥卷王2 小时前
[GESP202509 六级] 划分字符串(含视频)
数据结构·算法
m0_752035632 小时前
Redis 数据结构总结
数据结构·数据库·redis
2501_937767162 小时前
企业内部文件归集 + 服务器异地备份,轻量化方案选型对比
运维·服务器
tachibana22 小时前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言