且生 发表于 2013-8-23 12:08

请各位看看,kruskal算法的代码错在哪儿啦?

function =mintreek(n,W)
% 图论中最小生成树 Kruskal 算法 及画图程序 M 函数
% 格式=mintreek(n,W):n为图顶点数,W为图的带权邻接矩阵,
% 不构成边的两顶点之间的权用inf表示,显示最小生成树的边和顶点
% Wt 为最小生成树的权,Pp(:,1:2)为最小生成树的两顶点,Pp(:,3)为
% 最小生成树的边权,Pp(:,4)为最小生成树的序号;
% 附图,红色连线为最小生成树
tmpa=find(W~=inf);=find(W~=inf);
w=W(tmpa);e=;% w是W中非inf元素按列构成的向量
                    %e的每一行元素表示一条边的两个顶点的序号
=sort(w);E=;=size(E);
temp=find(E(:,1)-E(:,2));E=E(temp,:);
P=E(1,:);k=length(E(:,1));
while(rank(E)>0)
    temp1=max(E(1,2),E(1,1));temp2=min(E(1,2),E(1,1));
    for i=1:k;
        if(E(i,1)==temp1),E(i,1)=temp2;end
        if(E(i,2)==temp2),E(i,2)=temp2;end
    end
    a=find(E(:,1)-E(:,2));E=E(a,:);
    if(rank(E)>0),P=;k=length(E(:,1));end;
end;
Wt=sum(P(:,3));Pp=;
for i=1:length(P(:,3));%显示顶点vi与边ej
    disp([' ','e',num2str(P(i,4)),'','(v',...
        num2str(P(i,1)),'','v',num2str(P(i,2)),')']);
end;我照着书抄下来的,在22行的时候始终过不去
页: [1]
查看完整版本: 请各位看看,kruskal算法的代码错在哪儿啦?