当前位置: 首页 > article >正文

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



http://www.kler.cn/news/328346.html

相关文章:

  • Qt界面优化——绘图API
  • 【网络安全】身份认证
  • <STC32G12K128入门第十三步>驱动W5500进行TCP_Client通信
  • LeetCode: 1971. 寻找图中是否存在路径
  • 滚雪球学Oracle[4.1讲]:PL/SQL编程
  • 【开源免费】基于SpringBoot+Vue.JS美容院管理系统(JAVA毕业设计)
  • C0008.Clion利用C++开发Qt界面,使用OpenCV时,配置OpenCV方法
  • Sharding-JDBC笔记03-分库分表代码示例
  • redis01
  • 高级java每日一道面试题-2024年9月27日-数据库篇-性别是否适合做索引?
  • Leetcode45. 跳跃游戏 II
  • 「安装」 Windows下安装CUDA和Pytorch
  • linux如何与网络时间对齐(雪花算法ID重复)
  • 【AAOS】CarService -- Android汽车服务
  • 【Web】Electron:第一个桌面程序
  • Python与C#关于switch的使用区别
  • [python][pipenv]pipenv的使用
  • 输出 / 目录下所有目录文件的大小并排序
  • 如何改变音频声音大小?关于改变音频大小的方法介绍
  • NLP任务之文本分类(情感分析)
  • 简单vue指令实现 el-table 可拖拽表格功能
  • Qt C++设计模式->享元模式
  • Windows远程Kylin系统-xrdp
  • CTF中文件包含
  • 【优选算法】(第三篇)
  • IDEA 系列产品 下载
  • 前后端传参
  • Android 已经过时的方法用什么新方法替代?
  • 通信工程学习:什么是SMTP简单邮件传输协议
  • windows C++-计划组