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

UptoLike

{ Модуль для работы с бинарными деревьями }
Unit
BinTree;
Interface
uses
GlobalBT;
const
NilBT = nil;
type
BinT = ^Node; { представление бинарного дерева }
{ тип Elem описан в GlobalBT }
Node = record { узел : }
Info : Elem; { = содержимое }
LSub : BinT; { = левое поддерево }
RSub : BinT { = правое поддерево }
end { Node };
function CreateBT : BinT;
function NullBT ( t : BinT ) : Boolean;
function
RootBT ( t : BinT ) : Elem;
function
LeftBT ( t : BinT ) : BinT;
function RightBT ( t : BinT ) : BinT;
function ConsBT ( e : Elem; LS, RS : BinT ) : BinT;
procedure DestroyBT ( var b : BinT );
procedure Otkaz ( n : Byte );
{-----------------------------------------------------------------------------------}
Implementation
...
end.
Рис. 3.10. Модуль для работы с бинарными деревьями
Часть Implementation модуля BinTree может иметь следующий вид:
Implementation
procedure
Otkaz ( n : Byte );
begin
Case n of
1 : Write ( 'ОТКАЗ : RootBT( Null_Bin_Tree ) !');
2 : Write ( 'ОТКАЗ : LeftBT( Null_Bin_Tree ) !');
3 : Write ( 'ОТКАЗ : RightBT( Null_Bin_Tree ) !');
4 : Write ( 'ОТКАЗ : исчерпана память !')
else Write ( 'ОТКАЗ : ?')
end;
Halt
end { Otkaz };
function CreateBT : BinT;
begin
CreateBT := nil
end { CreateBT };
57
     { Модуль для работы с бинарными деревьями }
     Unit BinTree;
      Interface
         uses GlobalBT;
         const
            NilBT = nil;
         type
            BinT = ^Node;                   { представление бинарного дерева }
                                            { тип Elem описан в GlobalBT                 }
            Node = record                  { узел :                                       }
                          Info : Elem; { = содержимое                                    }
                          LSub : BinT; { = левое поддерево                               }
                          RSub : BinT { = правое поддерево                               }
                      end { Node };
     function CreateBT : BinT;
     function NullBT ( t : BinT ) : Boolean;
     function RootBT ( t : BinT ) : Elem;
     function LeftBT ( t : BinT ) : BinT;
     function RightBT ( t : BinT ) : BinT;
     function ConsBT ( e : Elem; LS, RS : BinT ) : BinT;
     procedure DestroyBT ( var b : BinT );
     procedure Otkaz ( n : Byte );
     {-----------------------------------------------------------------------------------}
     Implementation
     ...
     end.

                    Рис. 3.10. Модуль для работы с бинарными деревьями

   Часть Implementation модуля BinTree может иметь следующий вид:
Implementation
procedure Otkaz ( n : Byte );
begin
 Case n of
   1 : Write ( 'ОТКАЗ : RootBT( Null_Bin_Tree ) !');
   2 : Write ( 'ОТКАЗ : LeftBT( Null_Bin_Tree ) !');
   3 : Write ( 'ОТКАЗ : RightBT( Null_Bin_Tree ) !');
   4 : Write ( 'ОТКАЗ : исчерпана память !')
   else Write ( 'ОТКАЗ : ?')
 end;
 Halt
end { Otkaz };

function CreateBT : BinT;
begin
   CreateBT := nil
end { CreateBT };


                                                     57