Скачиваний:
8
Добавлен:
01.05.2014
Размер:
10.29 Кб
Скачать
{Їа®Ја ¬¬  вҐбвЁагой п ¬®¤г«м б ЎЁ­ а­л¬Ё ¤ҐаҐўмп¬Ё BinTree}
Uses BinTree,crt,GlobalBT;
var Fin : Text;
b,temp :BinT;
e:Elem;
function EnterBT :BinT;
{ ўў®¤ 㧫®ў ў Љ‹Џ-Ї®ап¤ЄҐ Ё Ї®бв஥­ЁҐ ЎЁ­ а­®Ј® ¤ҐаҐў }
var c:char;
begin
Read( Fin, c);
if c='/'
then EnterBT:=NilBT
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{ EnterBT };

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
Write(#10); { ў­Ё§ }
Write(' '); { ўЇа ў® }
DisplayBT( LeftBT( b ) );
Write(#8); Write(#8); { ў®§ўа в ў«Ґў® }
end;
end;{ else }
end{ DisplayBT };

procedure DisplayBT1( b :BinT; n :integer);
{ ўлў®¤ Ї®бва®з­®Ј® Ё Ї®ўҐа­гв®Ј® Ё§®Ўа ¦Ґ­Ёп ЎЁ­ а­®Ј® ¤ҐаҐў 
ЎҐ§ ў®§ўа в  Є®аҐвЄЁ }
{ n - га®ўҐ­м 㧫  }
var i:integer;
begin
if NullBT (b) then {Writeln}
else
begin
Write( ' ',RootBT( b ));
if NullBT(RightBT(b))
then Writeln { ў­Ё§ }
else DisplayBT1( RightBT(b), n+1);
if not NullBT(LeftBT(b))
then
begin
for i:=1 to n do write(' '); { ўЇа ў® }
DisplayBT1( LeftBT(b), n+1);
end;
end;
end{ DisplayBT1 };

{-------------Џа楤гал ЁбЇ®«м§гҐ¬лҐ ЇаЁ вҐбвЁа®ў ­ЁЁ------------------------}
procedure TNull( b :BinT);
{вҐбвЁагҐв NullBT ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('NullBT : „ҐаҐў® ');
if not NullBT( b ) then write('­Ґ ');
writeln('Їгбв®.');
write('BT=');
DisplayBT( b);writeln;
readkey;
end{TNull};

procedure TRoot( b :BinT);
{вҐбвЁагҐв RootBT ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('RootBT :',RootBT( b ));writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
end{TRoot};

procedure TLeft( b :BinT);
{вҐбвЁагҐв LeftBT ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('LeftBT :');
DisplayBT( LeftBT( b ));writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
end{TLeft};

procedure TRight( b :BinT);
{вҐбвЁагҐв RightBT ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('RightBT :');
DisplayBT( RightBT( b ));writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
end{TRight};

procedure TCons( b :BinT);
{вҐбвЁагҐв ConsBT ­  ўе®¤­®¬ ¤ҐаҐўҐ b
b - ­Ґ Їгбв®}
begin
write('BT=');
DisplayBT( b);writeln;
write('ConsBT (RootBT(b), LeftBT(b) ,RightBT(b) ) :');
DisplayBT( ConsBT( RootBT( b ), LeftBT( b ), RightBT( b ) ) );writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
end{TCons};

procedure TSetLeft( e:Char;var b :BinT);
{вҐбвЁагҐв SetLeft ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('SetLeft :');
SetLeft( e, b );
writeln;
write('BT=');
DisplayBT( b);writeln;
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,RightBT(b)); DestroyBT(Temp);
readkey;
end{TSetLeft};

procedure TSetRight( e:Char;var b :BinT);
{вҐбвЁагҐв SetRight ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
write('BT=');
DisplayBT( b);writeln;
write('SetRight :');
SetRight( e, b );
writeln;
write('BT=');
DisplayBT( b);writeln;
Temp:=RightBT(b); b:=ConsBT(RootBT( b ),LeftBT(b),NilBT); DestroyBT(Temp);
readkey;
end{TSetRight};

procedure TDisplay( b:BinT );
{вҐбвЁагҐв DisplayBT1 ­  ўе®¤­®¬ ¤ҐаҐўҐ b}
begin
writeln('DisplayBT :');
write(' ');DisplayBT( b);writeln;
writeln('DisplayBT1:');
DisplayBT1( b,1);
readkey;
end{TDisplay};
{---------------------------------------------------------------------------}

begin
Clrscr;
Assign(Fin,'intestbt.txt');
Reset(Fin);
b:=CreateBT;
{b:=EnterBT;}
OutBT( b ); Writeln;
Close(Fin);
{-----------------------NullBT---------------------------------------------}
Writeln( 'NullBT' );
Writeln(' ’Ґбв1 ');
b:=CreateBT;
TNull( b );
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TNull( b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TNull( b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TNull( b );
SetLeft('b',b);
Writeln(' ’Ґбв5 ');
TNull( b );
{---------------------------RootBT-----------------------------------------}
clrscr;
Writeln( 'RootBT' );
Writeln(' ’Ґбв1 ');
b:=CreateBT;
TRoot( b );
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TRoot( b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TRoot( b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TRoot( b );
SetLeft('b',b);
Writeln(' ’Ґбв5 ');
TRoot( b );
{----------------------------LeftBT-----------------------------------------}
clrscr;
Writeln( 'LeftBT' );
Writeln(' ’Ґбв1 ');
b:=CreateBT;
write('BT=');
DisplayBT( b);writeln;
write('LeftBT :'); LeftBT( b );
write('BT=');
DisplayBT( b );writeln;
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TLeft( b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TLeft( b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TLeft( b );
Writeln(' ’Ґбв5 ');
SetLeft('b',b);
TLeft( b );
{----------------------------RightBT----------------------------------------}
clrscr;
Writeln('RightBT');
Writeln(' ’Ґбв1 ');
b:=CreateBT;
write('BT=');
DisplayBT( b);writeln;
write('RightBT :'); RightBT( b );
write('BT=');
DisplayBT( b );writeln;
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TRight( b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TRight( b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TRight( b );
Writeln(' ’Ґбв5 ');
SetLeft('b',b);
TRight( b );
{----------------------------ConsBT-----------------------------------------}
clrscr;
Writeln('ConsBT');
Writeln(' ’Ґбв1 ');
b:=MakeRoot('a');
TCons( b );
Writeln(' ’Ґбв2 ');
SetLeft('b',b);
TCons( b );
Writeln(' ’Ґбв3 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TCons( b );
Writeln(' ’Ґбв4 ');
SetLeft('b',b);
TCons( b );
{---------------------------SetLeft----------------------------------------}
clrscr;
Writeln('SetLeft');
write('‚ўҐ¤ЁвҐ н«Ґ¬Ґ­в вЁЇ  Char:'); Readln(e);
Writeln(' ’Ґбв1 ');
b:=CreateBT;
write('BT=');
DisplayBT( b);writeln;
write('SetLeft :');
SetLeft( e, b );
writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TSetLeft( e, b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TSetLeft( e, b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TSetLeft( e, b );
Writeln(' ’Ґбв5 ');
SetLeft('b',b);
TSetLeft( e, b );
{---------------------------SetRight---------------------------------------}
clrscr;
Writeln('SetRight');
write('‚ўҐ¤ЁвҐ н«Ґ¬Ґ­в вЁЇ  Char:'); Readln(e);
Writeln(' ’Ґбв1 ');
b:=CreateBT;
write('BT=');
DisplayBT( b);writeln;
write('SetRight :');
SetRight( e, b );
writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TSetRight( e, b );
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TSetRight( e, b );
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
write('BT=');
DisplayBT( b);writeln;
write('SetRight :');
SetRight( e, b );
writeln;
write('BT=');
DisplayBT( b);writeln;
readkey;
Writeln(' ’Ґбв5 ');
SetLeft('b',b);
TSetRight( e, b );
{--------------------------DisplayBT1--------------------------------------}
clrscr;
Writeln('Display1BT');
Writeln(' ’Ґбв1 ');
b:=CreateBT;
TDisplay(b);
Writeln(' ’Ґбв2 ');
b:=MakeRoot('a');
TDisplay(b);
Writeln(' ’Ґбв3 ');
SetLeft('b',b);
TDisplay(b);
Writeln(' ’Ґбв4 ');
Temp:=LeftBT(b); b:=ConsBT(RootBT( b ),NilBT,MakeRoot('c')); DestroyBT(Temp);
TDisplay(b);
Writeln(' ’Ґбв5 ');
SetLeft('b',b);
TDisplay(b);
{--------------------------------------------------------------------------}
DestroyBT( b );
end.
Соседние файлы в папке Бинарные деревья на языке Паскаль