首页 > 编程语言 > 详细

有向无环图的拓扑排序

时间:2019-12-23 23:22:41      阅读:96      评论:0      收藏:0      [点我收藏+]

首先,介绍一下有向无环图。

从字面上理解:

  1. 为有向图
  2. 无环

举例,

    1. 有向的二叉树是特殊的有向无环图。
    1. 如图(关键部分)

技术分享图片

对于有向图来说,深度优先遍历下,若从head出发到结束时出现一条从head的下级节点mid开始指向head的一条路径,则必定此图有环。

拓扑排序

  • 首先,拓扑排序的对象肯定是有向无环图中左右的点。
  • 其次,若存在路径从a指向b,则拓扑排序结果中a一定在b的前面。
  • 最后,拓扑排序的排序规则(没有那么抽象),依次将入度为零的点拿出去,并抹掉它的出度线。

技术分享图片

有图为例

经过第一次筛选得 A

技术分享图片

第二次筛选得 B

技术分享图片

第三次筛选得D

技术分享图片

第四次筛选的 C,F(若无特殊要求,C,F的顺序是随机的)(这里我们按照字母表来)

技术分享图片

最后一个是F
所以综上,拓扑排序为 A B D CF E
好,简单明了,帮助理解概念,代码还是要自己敲哦,嘿嘿嘿。

有向无环图的拓扑排序

原文:https://www.cnblogs.com/linhaostudy/p/12088807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!