喜欢的老爷们可以点个赞,么么哒;
简介:最小生成树(Minimum Cost Spanning Tree)即构造连通图的最小代价生成树
备注:我的思路和 图是扒博客一位大佬的,讲解过成和代码是自己的,大佬的博客:传送门
1:本节内容涉及到知识点
1:prim 算法的详细讲解
2:无向图构建邻接表详细讲解
2:本节的大概思路
对于图G而言,V是所有顶点的集合。现在设置两个新的集合U和T, 其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有u∈U,v∈(V−U))(V−U表示除去U的所有顶点)的边中选取权值最小的边(u, v), 将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,知道U = V为止,最小生成树构造完毕,这是集合T中包含了最小生成树的所有边。
3:图解整个过程
讲解思路:从图1 怎么构建到图2 的最后一张图
1:我们随机取一点,假如是取A点,然后我们找与A想连的边,边集合<E>加入(A , B , 12) , (A , C , 14) ,(A , F , 16)与A相连的边,上面的意思是A 到 B点,权值为12 ,后面一样的意思。
2:我们取边集合中权值最小的一条边进行图结点连接,也就是把A 和 B 结点连接起来。
3:把边集合中这条已连接的边删除,然后找B与B结点相连且边的另一个结点没有访问过的边,例如,你就不能在选(B , A , 12) 这条边了。因为已经访问过了,我们可以把(B , F , 7), (B , C , 10) 加入到边集合,然后我们就可以重复 步骤2 和步骤 3 知道把所有的点连接起来,那么最小生成树就可以连接起来了。