будет массив 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;
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz