Динамические структуры данных. Алексеев А.Ю - 59 стр.

UptoLike

Далее приведем пример использования модуля BinTree, в котором для вво-
да бинарного дерева из файла и вывода его на экран используется КЛП-обход
бинарного дерева, описанный в 3.4.
{ Пример работы с бинарными деревьями }
Uses BinTree;
var b : BinT;
Fin : Text;
function EnterBt : BinT;
{ ввод узлов в КЛП-порядке и построение бинарного дерева }
var c : Char;
begin
Read ( Fin, c );
if c = '/'
then EnterBT := NilBT {Create}
else EnterBT := ConsBT ( c, EnterBT, EnterBT )
end { EnterBT };
procedure OutBT( b : BinT );
{ вывод узлов бинарного дерева в КЛП-порядке }
begin
if not NullBT ( b ) then
begin
Write ( RootBT ( b ) );
OutBT ( LeftBT ( b ) );
OutBT ( RightBT ( b ) )
end
else
Write ('/')
end { OutBT };
procedure DisplayBT ( b : BinT );
{ вывод построчного и повернутого изображения бин. дерева}
begin
if NullBt ( b ) then { ? }
else
begin
Write ( RootBT ( b ) );
if not NullBT ( RightBT ( b ) ) then
begin
Write (' '); { вправо }
DisplayBT ( RightBT ( b ) );
Write (#8); Write (#8); { возврат влево }
end;
if not NullBT ( LeftBT ( b ) ) then
begin
59
   Далее приведем пример использования модуля BinTree, в котором для вво-
да бинарного дерева из файла и вывода его на экран используется КЛП-обход
бинарного дерева, описанный в 3.4.

{ Пример работы с бинарными деревьями }
Uses BinTree;
var b : BinT;
    Fin : Text;
function EnterBt : BinT;
 { ввод узлов в КЛП-порядке и построение бинарного дерева }
 var c : Char;
begin
    Read ( Fin, c );
    if c = '/'
     then EnterBT := NilBT {Create}
     else EnterBT := ConsBT ( c, EnterBT, EnterBT )
end { EnterBT };

procedure OutBT( b : BinT );
 { вывод узлов бинарного дерева в КЛП-порядке }
begin
 if not NullBT ( b ) then
  begin
     Write ( RootBT ( b ) );
     OutBT ( LeftBT ( b ) );
     OutBT ( RightBT ( b ) )
  end
 else Write ('/')
end { OutBT };

procedure DisplayBT ( b : BinT );
{ вывод построчного и повернутого изображения бин. дерева}
begin
if NullBt ( b ) then { ? }
    else
     begin
        Write ( RootBT ( b ) );
        if not NullBT ( RightBT ( b ) ) then
            begin
             Write (' ');        { вправо }
             DisplayBT ( RightBT ( b ) );
             Write (#8); Write (#8); { возврат влево }
            end;
        if not NullBT ( LeftBT ( b ) ) then
            begin
                                    59