数据结构——最小生成树
题目
1.prim算法
prim算法的基本原理
- 设置两个集合,U集合中的元素是在生成树中的结点, V-U集合中的元素不是生成树中的图顶点。
- 首先选择一个作为生成树根节点的顶点,并将它放到U集合中。
- 而另一端顶点在V-U集合中找到一条权值最小的点,与之前的点连成一条边,放入生成树中
- 随后,将该顶点放入到U集合中。
我的思路:
1.可以将U理解为放入到生成树中的顶点,而V-U是未放入的。
V-U集合:{0,1,2,3,4,5}
U集合:{ }
#include <stdio.h>
#define MAX 10
#define M 32767
2.将零放在U中,然后分别标记出V-U中点与零的权重关系
1 | 2 | 3 | 4 | 5 | V-U集合 | U集合 | 生成树的边 | 边的权重 | |
---|---|---|---|---|---|---|---|---|---|
closest(用来保存依附于U中的顶点) | 0 | 0 | 0 | 0 | 0 | {1,2,3,4,5} | {0} |