问答题
下面是求无向连通图最小生成树的一种算法:
//设图中总顶点数为n,总边数为m
将图中所有的边按其权值从大到小排序为(e
1
,e
2
,e
3
,…,e
m
)
i=1;
while(m>=n){
从图中删去e
i
;(m=m-1)
若图不再连通,则恢复e
i
;(m=m+1)
i=i+1;
}
试问这个算法是否正确,并说明原因。
【正确答案】
【答案解析】
算法正确。一个无向连通图的边数m可以大于顶点数n,此时图中必然存在回路。在回路上依次删去权值最大的边e1,权值稍小的边e2,直到不能再删除为止。剩下的不能构成回路,又不能再减少的边就应是最小生成树的边了。如下图所示。
提交答案
关闭