1、用Prim算法求最小生成树的思想如下:
①设置一个顶点的集合S和一个边的集合TE,S和TE的初始状态均为空集;
②选定图中的一个顶点K,从K开始生成最小生成树,将K加入到集合S;
③重复下列操作,直到选取了n-1条边:
选取一条权值最小的边(X,Y),其中X∈S,not (Y∈S);
将顶点Y加入集合S,边(X,Y)加入集合TE;
④得到最小生成树T =(S,TE)
function Edge = prim_pt(G)
n = size(G,1);
Edge = zeros(n-1,3);
for i=1:n-1
Edge(i,1)=1;
Edge(i,2)=i 1;
Edge(i,3)=G(1,i 1);
end
for k=1:n-1
Min=Inf;
m=k;
for j=k:n-1
if Edge(j,3)
Min=Edge(j,3);
m=j;
end
if m~=k
t=Edge(k,:);
Edge(k,:)=Edge(m,:);
Edge(m,:)=t;
end
end
j=Edge(k,2);
for i=k 1:n-1
s