最小生成树是数据结构中图的一种重要应用,它的要求是从一个带权无向完全图 中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权最小。
以下代码包含生成无向网图,prim算法计算最小生成树的完整步骤。请观看【动画演示prim算法 】,验证程序是否正确。
代码说明几点:
lowcost[]用来保存集合V-U中各顶点与集合U中顶点最短边的权值,lowcost[v]=0表示顶点v已加入最小生成树中;
adjvex[]用来保存依附于该边在集合U中的顶点。
初始无向带权图如下:
实现的完整代码如下:
程序测试结果如下: