Prim算法的主要过程:
const nv=10;
type mat=array[1..nv,1..nv]of integer;
procedure prim(var cost:mat;v0:integer);
var lowcost.closest:array[1..nv]of integer;
i,j,k,min:integer;
begin
for i:=1 to nv do
begin
lowcost:=cost[v0.i];
closest:=v0;
end;
for i:=1 tonv-1 do
begin
min:=32767;
for j:=1 to nv do
if(lowcost[j]<min)and(lowcost[j]<>0) then
begin
min:=lowcost[j];
k:=j;
end;
writeln(closest[k]:5,k:5,cost[closest[k],k]:5);
lowcost[k]:=0;
for j:=1 to nv do
if cost[k,j]<lowcost[j] then
begin
lowcost[j]:=cost[k,j];
closest[j]:=k;
end;
end;
end.