图论算法-最小生成树
在一个无向图中找出一颗最小生成树(minimum spanning tree),这个问题对有向图也是有意义的,不过找起来更困难。最小生成树存在当且仅当图 G G G是连通的。在最小生成树中边的条数为 ∣ V ∣ − 1 \left | V \right |-1 ∣V∣−1。
Prim算法
在每一步,都要把一个节点当作根并往上边加。在算法的任一时刻,我们都可以看到一个已经添加到树上的顶点集,而其余顶点尚未加到这棵树中,此时,算法在每一阶段都可以通过选择边 ( u , v ) (u,v) (u,v),使得 ( u , v ) (u,v) (u,v)的值是所有 u u u在树上但 v v v不在树上的边值中的最小者,而找出一个新的顶点并把它添加到这棵树中。
代码
这里使用的邻接矩阵。
void Prim(Graph g)