i нет в маршруте).


i нет в маршруте). Во втором и третьем массивах запоминаются по принципу стека текущий и наилучший маршруты соответственно. Для работы со стеками необходимы указатели - переменные yk и yk_max. Логика перебора поясняется на нижеприведенном рисунке. Ищем путь из города с номером i. Фрагмент основной программы. begin ... FillChar(New,SizeOf(New),true); yk:=1;Way[yk]:=1;pp:=true;yk_max:=0; rec(1); ... (* Вывод результата *) ... end. И процедура поиска решения. procedure rec(i:byte); var j,pn,pv:byte; begin if i=n then pp:=false; (* меняем направление *) if (i=1) and not pp then begin (* вернулись в первый город *) if yk>yk_max then begin (* запоминаем решение *) yk_max:=yk; way_r:=way; end; pp:=true; (* продолжаем перебор *) end; (* по направлению определяем номера просматриваемых городов*) if pp then begin pn:=i+1; pv:=n end else begin pn:=1; pv:=i-1 end; for j:=pn to pv do begin if West[i,j] and New[j] then
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz