美文网首页
浅谈拓扑排序

浅谈拓扑排序

作者: 桐人_ | 来源:发表于2019-03-23 13:16 被阅读0次

    与拓扑第一次相遇是在大一下学期,那时候觉得拓扑很单纯很好懂。但是时隔一年以后,在天梯赛再遇拓扑时却是形同路人,那么陌生。我对拓扑情感尚在,因此在此文中记录拓扑,以表忠心!
    瞎扯时间已经过去,下面进入正题。
    什么是拓扑排序?

    拓扑排序就是按照一种规则进行排序,并且只有有向无环图才能进行拓扑排序,一个有向无环图可能有多种
    排列结果。

    那么规则是?

    拓扑排序就是根据有向无环图中的关系进行排列,其中父节点排在子节点前面。
    (节点1指向节点2,则节点1是父节点,节点2是子节点)

    拓扑排序已经很显然了,下面将说明怎么用代码进行拓扑排序。

    1. 任取一个入度为零的节点入队,如果没有则结束
    2. 在图中删除入队节点,以及关联的边。
    3. 对所有子节点的入度减一
    4. 递归操作剩下的所有节点

    这就是拓扑排序的过程,若最后入队节点少于n, 则说明该图不是有向无环图。对于拓扑排序的理解就这么多,更多详情见一位前辈的文章<< 深入理解拓扑排序(Topological sort) >>

    相关文章

      网友评论

          本文标题:浅谈拓扑排序

          本文链接:https://www.haomeiwen.com/subject/qehdvqtx.html