求最小树
程序代码如下:
%编写日期 2004-5-10
%求最小树
%原始数据载入
clc;
clear;
load in。m
branch=in(:,1);
from=in(:,2);
to=in(:,3);
%载入完毕
%求分支数
n=length(branch);
%求接点数
node(1)=from(1);
n_node=1;
for i=1:n
flag1=0;
for j=1:n_node
if from(i)==node(j)
flag1=1;
end
end
if flag1==0
n_node=n_node+1;
node(n_node)=from(i);
end
flag2=0;
for j=1:n_node
if to(i)==node(j)
flag2=1;
end
end
if flag2==0;
n_node=n_node+1;
node(n_node)=to(i);
end
end
m=length(node);
for i=1:m
mark(i)=i;
V(i)=i;
end
%求一棵树
s=0;
for i=1:n
if
( mark(from(branch(i))) ~= mark(to(branch(i))))
s=s+1;
T(s)=branch(i);
if
(mark(from(branch(i))) > mark(to(branch(i))))
mark(from(branch(i))) = mark(to(branch(i)));
else
end
mark(to(branch(i))) = mark(from(branch(i)));
end
end
disp('所求最小树为:');