Структуры данных. Деревья - 13 стр.

UptoLike

15
Функция проверки, является ли стек start пустым :
function Empty (start:Stack): boolean;
begin
Empty:=start=nil
end;
Процедура префиксного обхода дерева :
procedure PrefOrd (T : Tree);
var start : Stack; flag : boolean;
begin
start:=nil; { очистить стек }
flag:=true;
while flag do
begin
{ операция обработки узла дерева , например, writeln( T^.inf );}
{ перейти к следующему узлу }
if T^.L <> nil then { есть левая ветвь }
begin
{ если правая ветвь есть, то ссылку на нее добавить в стек }
if T^.R <> nil then Puch(start,T^.R);
T:=T^.L { по левой ветви вниз }
end
else
if T^.R <> nil then { есть правая ветвь }
T:=T^.R { по правой ветви вниз }
else { нет обеих ветвей }
begin
if Empty(start) then { если стек пуст }
flag:=false { конец обхода }