8.4 生成树和最小生成树
一般考察应用题,让你写出普里姆算法(克鲁斯卡尔算法)下图的最小生成树,以及写出最小生成树构造的过程。
8.4.1 生成树的概念
一个连通图的生成树是一个极小连通子图,其中含有图中的全部顶点,和构成一棵树的(n-1)条边。
图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树。
8.4.2 普里姆算法
普里姆(Prim)算法是一种构造性算法。假设G=(V,E)是一个具有n个顶点的带权连通图,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,则由G构造从起始点v出发的最小生成树T的步骤如下:
- 初始化U={U},以v到其他顶点的所有边为候选边,起点是v。
- 重复以下步骤(n-1)次,使得其他(n-1)个顶点被加入到U中。
- ①从候选边中挑选权值最小的边加入TE,设该边在V-U中的顶点是k,将k加人U中;
- ②考查当前V-U中的所有顶点j,修改候选边,若(k,j)的权值小于原来(U-k)和顶点j关联的候选边,则用(k,j)取代后者作为候选边。
U:0, 侯选边:01,02,03 TE:02
U:0,2 侯选