Kruskal(pascal)

来源:百度知道 编辑:UC知道 时间:2024/06/06 06:11:30
(pascal)谁可给我Kruskal算法,程序,注释,数据.尽量别用并查集.
3Q

这是不用并查集的版本

var
x:array[1..100,1..3] of integer;
n,xlen:integer;
s:longint;
procedure init;
var i,j,t,k:integer;
begin
fillchar(x,sizeof(x),0);
assign(input,'prim.txt');
reset(input);
readln(n);k:=0;
for i:=1 to n do
begin
for j:=1 to i do
begin
read(t);
if t>0 then
begin inc(k);x[k,1]:=i;x[k,2]:=j;x[k,3]:=t;end;
end;
for j:=i+1 to n do
read(t);
end;
close(input);
xlen:=k;
for i:=1 to xlen-1 do
begin
k:=i;
for j:=i+1 to xlen do
if x[j,3]<x[k,3] then
k:=j;
t:=x[i,1];x[i,1]:=x[k,1];x[k,1]:=t;
t:=x[i,2];x[i,2]:=x[k,2];x[k,2]:=t;
t:=x[i,3];x[i,3]:=x[k,3];x[k,3]:=t;
end;