通过弧进行拓扑排序

时间:2012-03-25 21:55:55

标签: algorithm topological-sort

真的需要一些指导: 通过弧定义进行拓扑排序(来自我的问题) - 是一种排序方向图中所有弧的方法,因此插入顶点的所有弧必须在从该顶点出来的弧之前。

2 个答案:

答案 0 :(得分:3)

无需在拓扑排序中更改任何内容,您只需使用它,然后进行后处理。

高级伪代码:

  1. 运行拓扑排序,让结果数组为arr
  2. 创建空边列表,让它为l
  3. {li>为v [有序迭代]中的每个顶点arr
    3.1。对于(v,u)中的每个E
    3.1.1。追加(v,u) to l
  4. return l
  5. 这种方法的优点是你可以使用拓扑排序作为黑盒子,而无需修改,只需后期处理即可获得所需的结果。

    正确性 [证明草图]:
    由于每个边(v,u) - u出现在v之后的拓扑排序中,当您打印它时,它是通过v完成的,因此{{1在打印附加到(v,u)的任何顶点之前打印。

    <强>复杂性
    u拓扑排序,O(|V|+|E|)用于后期处理[迭代所有顶点和所有边缘]。

答案 1 :(得分:0)

“传统”拓扑排序是对顶点进行排序,而这是排序弧。否则原则是一样的......