www.gusucode.com > Floyd算法、dijkstra算法、贪婪算法、遗传算法、搜索算法、蚁群算法、哈密顿环路的matlab源程序 > code/贪婪算法/最小生成树Prim算法/prim.m

    function [T]=prim(D,n)
T=[];l=0;%l记录T的列数
q(1)=-1;
for i=2:n
    p(i)=1;q(i)=D(i,1);
end
k=1;
while 1
    if k>=n
        disp(T);
        break;
    else
        min=inf;
        for i=2:n
            if q(i)>0&q(i)<min
                min=q(i);
                h=i;
            end
        end
    end
    l=l+1;
    T(1,l)=h;T(2,l)=p(h);
    q(h)=-1;
    for j=2:n
        if D(h,j)<q(j)
            q(j)=D(h,j);
            p(j)=h;
        end
    end
    k=k+1;
end