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

图论拓扑排序

拓扑排序(有向无环图):事件之间存在依赖关系,事件A依赖于事件B,那么A的实现的前提是B先实现

对于图论来说,图谱排序就是将一个有向图转换成线性的排序,其中很重要的一点是判断图中有无环,即存在循环依赖的话就不能做线性排序。

BFS和DFS都可以,掌握BFS(卡恩算法)

步骤:

  1. 优先找到入度为0的节点,它是起点,加入结果集
  2. 将该节点从图中移除

拓扑排序就是重复以上过程,如果找不到入度为0的节点说明有环,拓扑算法也是判断有向环的方法。

       第一次写,忘记在广搜的过程中判断当前文件是否有后续文件了

可以用邻接表存有向图,别忘记初始化表的大小,使用邻接表的好处
          遍历更高效:没有引入哈希结构,更适合图

        更小的内存开销:map需要维持平衡树的结构,unordered_map也要维持哈希桶,相比下vector开销更小

        避免隐式初始化:如果u不存在,map会自动创建一个u,可能引起bug

相关文章:

  • Spring Boot动态配置修改全攻略
  • 神经符号推理系统:研究进展与应用前景
  • MCP 入门实战:用 C# 开启 AI 新篇章
  • 文本数据可视化
  • 【软件工程】软件缺陷 基于组合的优化方法
  • Python爬虫实战:研究ajax异步渲染加密
  • keil 解决 Error: CreateProcess failed, Command: ‘XXX\ARM\ARMCC\bin\fromelf.exe
  • 自动驾驶技术栈——DoIP通信协议
  • 如何让rabbitmq保存服务断开重连?保证高可用?
  • tryhackme——Lateral Movement and Pivoting
  • 学习threejs,使用Physijs物理引擎,加载各种几何体网格对象
  • 【Web前端开发】CSS基础
  • vue2关闭eslint
  • 通义千问席卷日本!开源界“卷王”阿里通义千问成为日本AI发展新基石
  • Kotlin 懒初始化值
  • Cabot:开源免费的 PagerDuty 替代品,让系统监控更简单高效
  • 力扣 旋转图像
  • 十五、多态与虚函数
  • 在MyBatis Plus里处理LocalDateTime类型
  • Termius ssh连接服务器 vim打开的文件无法复制问题
  • 城市轨道交通安全、内河港区布局规划、扎实做好防汛工作……今天的上海市政府常务会议研究了这些重要事项
  • 水豚“豆包”出逃已40天,扬州茱萸湾景区追加悬赏
  • 5月12日-14日,上海小升初民办初中进行网上报名
  • 撤制镇如何突破困境?欢迎订阅《澎湃城市报告》第23期
  • 做街坊们的“健康管家”,她把专科护理服务送上门
  • 射箭世界杯上海站摘得两银,中国队新周期冲击韩国缩小差距