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

图论拓扑排序

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

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

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

步骤:

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

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

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

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

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

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

http://www.dtcms.com/a/185232.html

相关文章:

  • 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打开的文件无法复制问题
  • 【Java ee初阶】IP协议
  • 进程和线程
  • GTC2025——英伟达布局推理领域加速
  • 什么是Vim
  • 神经生物学+图论双buff,揭示大脑语言系统的拓扑结构
  • 探秘高可用负载均衡集群:企业网络架构的稳固基石
  • EnumUtils:你的枚举“变形金刚“——让枚举操作不再手工作业
  • ARM-CortexM固件升级相关问题研究
  • 模型上下文协议(MCP):AI的“万能插座”
  • Matplotlib 完全指南:从入门到精通