DAG和顶级排序

时间:2017-02-22 02:37:11

标签: directed-acyclic-graphs topological-sort

"根据增加的预编号排列DAG的顶点导致拓扑排序。"显然不是一个真实的陈述,但我不明白为什么它不是。如果图是指向的并且没有周期,那么我们访问顶点的顺序是否必须是我们在拓扑上对其进行排序的正确顺序?

1 个答案:

答案 0 :(得分:1)

通过增加预编号进行排列并不能保证有效的拓扑排序。考虑一下这个图:

    A
    ↓
B → C → D

此图的两个有效拓扑顺序为:

A, B, C, D
B, A, C, D

如果您要访问以 C 开头的节点,可能会有一个可能的预编号顺序:

C, D, A, B

这不是一个有效的拓扑命令。一个更简单的例子是这个图:

B → A

显然有一个有效的拓扑订单,但如果我们先访问 A 并按预先编号排序,则生成的订单将会倒退。