我无法真正理解强连接组件算法的工作原理

时间:2014-04-20 13:03:07

标签: algorithm graph

我书中强烈连接的组件算法:

强连接组分(G)

  1. 调用DFS(G)来计算每个顶点u
  2. 的完成时间f [u]
  3. 计算转置(G)
  4. 调用DFS(Transpose(G)),但是在DFS的主循环中,按照f [u]递减的顺序考虑顶点(如第1行所计算)
  5. 将步骤3的深度优先林中的每棵树的顶点输出为单独的强连通组件
  6. 我真的不明白第4行是如何工作的,算法是如何在转置图上从DFS制作森林的。我明白为什么要把这两次都叫做DFS。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

DFS主循环调用每个顶点上的递归辅助函数,以探索从该顶点可到达的顶点。这里的“树”是由这些递归调用之一访问的的顶点集。必须修改辅助函数以构造此集合,只要它是非空的,它就是一个强大的组件。