证明比较繁琐,仔细检查了应该没有大错,记录一下证明过程。
强连通分量定义:
在有向图中,强连通分量的定义是:有向图的某个子图,其中任意两个点之间可以互达。
强连通分量的定理:
定理1:一个完整的强连通分量一定包含在一棵深度优先搜索树中。
定理2:子图是强连通分量<=>子图中的每一条路径都归属于一个环状(除非只有一个点)。
证明:根据强连通分量的定义,任意两个点之间可以互达,所以等价于任意两个点之间的路径是一个环的一部分。
定理2:子图是强连通分量<=>子图中的每一条路径都归属于一个环状(除非只有一个点)。
证明:根据强连通分量的定义,任意两个点之间可以互达,所以等价于任意两个点之间的路径是一个环的一部分。
tarjan算法:
假设图有n个节点,m条边。该算法可以在O(n+m)的时间复杂度中输出所有强连通分量。
Tarjan算法是在深度优先搜索的基础上进行的。
首先算法有3个数据结构: