什么是最小生成树?
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。
因此,只有连通图才存在最小生成树,因为所有顶点都可达,如果是非连通图,一定不存在最小生成树。
求最短路径时的图一般是有向图
求最小生成树时的图一般是无向图
最小生成树的应用
例如要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。
这就需要找到带权的最小生成树。
算法实现
- prim算法
- kruskal算法