def:对于图G(V,E)集合E中的边带有权重,存在一个包含所有节点的树并树边为E的子集,使得所有边的权重最小,则该树称为最小生成树。
32.1 最小生成树的形成
我们使用贪心算法来找到一个最小生成树
23.2 Kruskal算法和Prim算法
两个算法一个直接对边权重大小进行排序,一步步加入到树中;另一个则是根据跨越分割的边(既从树节点到未加入树的节点的边)的权重来选择节点。示意图如下:
实现代码如下:
class Node():
def __init__(self, x):
self.value = x
self.p = self
self.rank = 0
def MAKE_SET(x):
x.p =