记录了用matlab代码求最小生成树的方法!

文章完善进度100%

需求&方法1

求下面图的最小生成树(就是用一条线把图中所有顶点连起来,同时要保证边的数量与总长度最小)

具体操作步骤

①matlab不区分“prim算法”与“Kruskal算法”,统一使用“minspantree(G)函数”求最小生成树!
②写代码如下:

1
2
3
4
5
6
7
s = [1 1 1 2 5 3 6 4 7 8 8 8];
t = [2 3 4 5 3 6 4 7 2 6 7 5];
weights = [100 10 10 10 10 20 10 30 50 10 70 10];
G = graph(s,t,weights);
p = plot(G,'EdgeLabel',G.Edges.Weight);
[T,pred] = minspantree(G);
highlight(p,T)

③运行代码得结果

• T是一个7行2列的数据,用于表示“选择的边 + 边的权值”!
• pred表示前趋,为0则表示它是首个被选择的点!