强连通分量的简单概括
简介
对于强连通分量,是只懂得原理,但不知道如何用算法实现求解。今天就对强连通分量的算法进行一个整理,也对强连通分量的实例进行分析。
强连通分量
强连通分量出现在有向有环图中,每一个连通的分量都可以被当作是强连通分量。如左下图每一个虚线框内都是一个强连通分量,右下图则将强连通分量当作一个结点后构成的一个DAG
在《算法概论》中采用的pre,post时间序列的线性算法中,强连通分量有以下的特点:
1. 在DFS中得到的post值最大的顶点一定位于一个源点强连通部件中
2. 如果C和C’是强连通部件,同时从C中的一个顶点到C’中的一个顶点存在一条边,则C中post的最大值要大于C’中post的最大值。
3. 每个有向图至少存在一个汇点和一个源点
根据上面的性质,强连通部件能够通过按照其各自内部顶点的post最大值的降序排列,实现线性化。
一旦我们找到了第一个汇点强连通部件,就将它从图中删除(删除该强连通部件的所有结点),得到的新图中的post值最大的顶点一定在新图中的一个汇点强连通部件中。从而我们可以重复使用这种基于针对