будет массив St
будет массив St (St:array[1..n*(n-1) div 2] of byte. Количество не нулевых элементов в St - значение переменной Count. Эти величины описываются в разделе переменных процедуры solve, их инициализация - в процедуре init_solve.Процедуру поиска эйлерова цикла сделаем рекурсивной, поэтому первый вызов изменится - eiler_way(1). Выбор начальной вершины при поиске эйлерова цикла не имеет значения.
Итак, классическая логика поиска эйлерова цикла. Приводится с целью показа работы процедуры komm_way, ибо последняя не есть поиск гамильтонова цикла в обычной трактовке.
procedure eiler_way(v:byte);
var j:integer;
begin
for j:=1 to N do
if b[v,j] then begin b[v,j]:=false;b[j,v]:=false;eiler_way(j);end;
inc(count);St[count]:=v;{заносим номер вершины в эйлеров цикл}
end;
procedure komm_way;
var s:set of 1..Nmax;
i,j:integer;
begin
i:=0;s:=[];
for j:=1 to Count do{исключаем повторяющиеся номера вершин из эйлерова цикла}
if Not(St[j] in s) then begin
inc(i);way[i]:=St[j];s:=s+[St[j]];
end;
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа