Перебирання варіантів в програмуванні, Детальна інформація

Перебирання варіантів в програмуванні
Тип документу: Реферат
Сторінок: 10
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 26.4
Скачувань: 914
if i=n then {обробка вузла-листка}

if test(H, i) then {друкування повного допустимого розміщення}

{ та повернення до батька незалежно від наявності братів}

begin writs(H, n); i:=i-1; {i>0!} D[i]:=1 end

else

if H[i]
else {повернення до батька – }

{піддерево, в якому він є коренем, вже обійшли}

begin i:=i-1; {i>0!} D[i]:=1 end

else {обробка проміжного вузла}

if (D[i]=0) and test(H, i) then {рух у глибину}

begin i:=i+1; H[i]:=1; D[i]:=0 end

else {рух праворуч або нагору}

if H[i]
begin H[i]:=H[i]+1; D[i]:=0 end

else {рух нагору}

begin i:=i-1; if i>0 then D[i]:=1 end

end

Оформлення програми з необхідними означеннями, ініціалізаціями та нерекурсивною процедурою пошуку залишаємо як вправу.

Узагальнимо наведений алгоритм, вважаючи, що, на відміну від задачі про розміщення ферзів, кореневий вузол дерева також містить деяку відповідну інформацію:

заштовхнути кореневий вузол у магазин;

while магазин не порожній do

begin

нехай A – вузол на верхівці магазина;

if A є листком then

begin

обробити листок A;

виштовхнути A з магазина;

if A не є правим сином свого батька then

заштовхнути в магазин правого брата A;

The online video editor trusted by teams to make professional video in minutes