求有向图G的强连通分量的基本步骤是:
⑴ 对G进行深度优先遍历,生成G的深度优先生成森林T。
⑵ 对森林T的顶点按中序遍历顺序进行编号。
⑶ 改变G中每一条弧的方向,构成一个新的有向图G’。
⑷ 按⑵中标出的顶点编号,从编号最大的顶点开始对G’进行深度优先搜索,得到一棵深度优先生成树。若一次完整的搜索过程没有遍历G’的所有顶点,则从未访问的顶点中选择一个编号最大的顶点,由它开始再进行深度优先搜索,并得到另一棵深度优先生成树。在该步骤中,每一次深度优先搜索所得到的生成树中的顶点就是G的一个强连通分量的所有顶点。
⑸ 重复步骤⑷ ,直到G’中的所有顶点都被访问。
最小生成树
构造最小生成树的算法有许多,基本原则是:
◆ 尽可能选取权值最小的边,但不能构成回路;
◆ 选择n-1条边构成最小生成树。
以上的基本原则是基于MST的如下性质:
设G=(V,E)是一个带权连通图,U是顶点集V的一个非空子集。若u∈U ,v∈V-U,且(u, v)是U中顶点到V-U中顶点之间权值最小的边,则必存在一棵包含边(u, v)的最小生成树。