(Mark[i]=i для i
(Mark[i]=i для i от 1 до N). Ребро выбирается в каркас в том случае, если вершины, соединяемые им, имеют разные значения меток. В этом случае циклы не образуются. Для примера, приведенного выше, процесс изменения Mark показан в таблице.
Номер итерации Ребро Значения элементов Mark
начальное значение - [1,2,3,4,5]
1 <1,4> [1,2,3,1,5]
2 <4,5> [1,2,3,1,1]
3 <2,3> [1,2,2,1,1]
4 <2,5> [1,1,1,1,1]
И логика этого фрагмента.
procedure Chang_Mark(l,m:integer);
{массив Mark глобальный}
var i,t:integer;
begin
if m<l then begin t:=l;l:=m;m:=t end;
for i:=1 to N do if Mark[i]=m then Mark[i]:=l;
end;
Фрагмент основной части логики.
program Tree1;
const N=..;
var P:array[1..3,1..N*(N-1) div 2] of integer;
Mark:array[1..N] of integer;k,i,t:integer;
M:integer;{количество ребер графа}
begin
<ввод описания графа - массив P>;
<сортировка массива P по значениям весов ребер>;
for i:=1 to N do
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа