`
lovecontry
  • 浏览: 1035943 次
文章分类
社区版块
存档分类
最新评论

无向网的最小生成树(Prim算法)

 
阅读更多

适用于边较为稠密型的连通网

假设N=(V,{VR})是一个连通网,TE是V上的最小生成树的边的集合,Prim算法从U={u0}(u0∈V) ,TE={}开始,重复执行下面的操作:

在所以的u∈U,v∈V-U的边(u,v)∈VR中找一条权值最小的边(u0,v0),并入集合TE,同时v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。为了实现这个算法,需引入一个辅助的数组closedge,记录从U到V-U具有最小权值的边,每个顶点Vi对应数组中的closedege[i-1],包括两个域,一个是adjvex,存储该边依附的在U中顶点,另一个是Lowcost,存储权值。下面是代码:

tree.h文件

测试函数main.cpp

下面是测试结果

按照输入所生成的无向网和生成树如下

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics