Topological sorting

来源:互联网 发布:淘宝明朗体育怎么样 编辑:程序博客网 时间:2024/05/29 13:47

algorithm

Kahn algorithm

L ← Empty list that will contain the sorted elementsS ← Set of all nodes with no incoming edgeswhile S is non-empty do    remove a node n from S    add n to tail of L    for each node m with an edge e from n to m do        remove edge e from the graph        if m has no other incoming edges then            insert m into Sif graph has edges then    return error (graph has at least one cycle)else     return L (a topologically sorted order)

dfs algorithm

L ← Empty list that will contain the sorted nodeswhile there are unmarked nodes do    select an unmarked node n    visit(n) 
function visit(node n)    if n has a temporary mark then stop (not a DAG)    if n is not marked (i.e. has not been visited yet) then        mark n temporarily        for each node m with an edge from n to m do            visit(m)        mark n permanently        unmark n temporarily        add n to head of L

0 0
原创粉丝点击