
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Бинарные деревья1 / TESTBT
.CPP #include"bintree.h"
#include<conio.h>
FILE *fin;
BinT EnterBT()
// ўў®¤ г§«®ў ў Љ‹Џ-Ї®ап¤ЄҐ Ё Ї®бв஥ЁҐ ЎЁ а®Ј® ¤ҐаҐў
{
Elem c;
if (fscanf ( fin,"%c", &c ))
{
if (c=='/') return 0;
else { BinT b1=EnterBT();
BinT b2=EnterBT();
return ConsBT ( c,b1 ,b2);
}
}
return 0;
}// EnterBT
void OutBT ( BinT b )
// ўлў®¤ г§«®ў ЎЁ а®Ј® ¤ҐаҐў ў Љ‹Џ-Ї®ап¤ЄҐ
{
if ( !NullBT( b ) )
{
printf( "%c", RootBT ( b ) );
OutBT( LeftBT ( b ) );
OutBT( RightBT ( b ) );
}
else printf( "/" );
}// EnterBT
void DisplayBT ( BinT b, int n )
/* ўлў®¤ Ї®бва®з®Ј® Ё Ї®ўҐагв®Ј® Ё§®Ўа ¦ҐЁп ЎЁ а®Ј® ¤ҐаҐў
ЎҐ§ ў®§ўа в Є®аҐвЄЁ
n - га®ўҐм г§« */
{
if ( !NullBT ( b ))
{
printf( " %c", RootBT( b ) );
if ( NullBT ( RightBT ( b ) ) )
printf("\n"); // ўЁ§
else DisplayBT( RightBT ( b ), n+1);
if ( !NullBT ( LeftBT ( b ) ) )
{
for (int i=1;i<=n;i++) printf(" "); // ўЇа ў®
DisplayBT( LeftBT ( b ), n+1);
};
}
}// DisplayBT
//-------------Џа楤гал ЁбЇ®«м§гҐ¬лҐ ЇаЁ вҐбвЁа®ў ЁЁ-----------------------
void TNull ( BinT b )
//вҐбвЁагҐв NullBT ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
printf("NullBT : „ҐаҐў® ");
if ( !NullBT ( b ) ) printf(" Ґ ");
printf("Їгбв®.\n");
printf("BT=\n");
DisplayBT( b, 1);
getch();
}//TNull
void TRoot ( BinT b )
//вҐбвЁагҐв RootBT ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1 );
printf("\n");
printf("RootBT : %c",RootBT( b ));printf("\n");
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
getch();
}//TRoot
void TLeft( BinT b)
//вҐбвЁагҐв LeftBT ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
printf("LeftBT :");
DisplayBT( LeftBT( b ), 1);printf("\n");
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
getch();
}//TLeft
void TRight( BinT b)
//вҐбвЁагҐв RightBT ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
printf("RightBT :");
DisplayBT( RightBT( b ), 1); printf("\n");
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
getch();
}//TRight
void TCons( BinT b)
//вҐбвЁагҐв ConsBT ўе®¤®¬ ¤ҐаҐўҐ b (b - Ґ Їгбв®)
{
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
printf("ConsBT (RootBT(b), LeftBT(b) ,RightBT(b) ) :\n");
DisplayBT( ConsBT( RootBT( b ), LeftBT( b ), RightBT( b ) ), 1 );
printf("\nBT=\n");
DisplayBT( b, 1 ); printf("\n");
getch();
}//TCons
void TSetLeft( char e, BinT &b)
//вҐбвЁагҐв SetLeft ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
printf("SetLeft :");
SetLeft( e, b );
printf("\n");
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
BinT Temp=LeftBT(b); b=ConsBT(RootBT( b ), 0, RightBT(b)); DestroyBT(Temp);
getch();
}//TSetLeft
void TSetRight( char e, BinT &b )
//вҐбвЁагҐв SetRight ўе®¤®¬ ¤ҐаҐўҐ b
{
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
printf("SetRight :");
SetRight( e, b );
printf("\n");
printf("BT=\n");
DisplayBT( b, 1 ); printf("\n");
BinT Temp=RightBT(b); b=ConsBT(RootBT( b ),LeftBT(b), 0 );
DestroyBT(Temp);
getch();
}//TSetRight
void main()
{
fin=fopen("intestbt.txt", "r");
BinT b,Temp;
char e;
/* b=EnterBT();
DisplayBT ( b, 1 );
fclose ( fin );
OutBT( b ); printf("\n");
DestroyBT( b );
getch();*/
clrscr();
//-----------------------NullBT---------------------------------------------}
printf( "NullBT\n" );
printf(" ’Ґбв1 \n");
b=CreateBT();
TNull( b );
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TNull( b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TNull( b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0,MakeRoot('c')); DestroyBT(Temp);
TNull( b );
SetLeft('b',b);
printf(" ’Ґбв5 \n");
TNull( b );
//---------------------------RootBT-----------------------------------------
clrscr();
printf( "RootBT\n" );
printf(" ’Ґбв1 \n");
printf("BT=\n");
b=CreateBT();
DisplayBT( b, 1 );
printf("\n");
printf("RootBT :\n");
RootBT( b );
printf("\nBT=\n");
DisplayBT( b, 1 ); printf("\n");
getch();
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TRoot( b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TRoot( b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0,MakeRoot('c')); DestroyBT(Temp);
TRoot( b );
SetLeft('b',b);
printf(" ’Ґбв5 \n");
TRoot( b );
//----------------------------LeftBT-----------------------------------------}
clrscr();
printf( "LeftBT\n" );
printf(" ’Ґбв1 \n");
b=CreateBT();
TLeft( b );
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TLeft( b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TLeft( b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0,MakeRoot('c')); DestroyBT(Temp);
TLeft( b );
printf(" ’Ґбв5 \n");
SetLeft('b',b);
TLeft( b );
//----------------------------RightBT----------------------------------------}
clrscr();
printf("RightBT\n");
printf(" ’Ґбв1 \n");
b=CreateBT();
TRight( b );
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TRight( b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TRight( b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0 ,MakeRoot('c')); DestroyBT(Temp);
TRight( b );
printf(" ’Ґбв5 \n");
SetLeft('b',b);
TRight( b );
//----------------------------ConsBT-----------------------------------------}
clrscr();
printf("ConsBT\n");
printf(" ’Ґбв1 \n");
b=MakeRoot('a');
TCons( b );
printf(" ’Ґбв2 \n");
SetLeft('b',b);
TCons( b );
printf(" ’Ґбв3 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0 ,MakeRoot('c')); DestroyBT(Temp);
TCons( b );
printf(" ’Ґбв4 \n");
SetLeft('b',b);
TCons( b );
//---------------------------SetLeft----------------------------------------}
clrscr();
printf("SetLeft\n");
printf("‚ўҐ¤ЁвҐ н«Ґ¬Ґв вЁЇ Char:"); cscanf("%c",&e);
printf("\n ’Ґбв1 \n");
b=CreateBT();
printf("BT=");
DisplayBT( b, 1); printf("\n");
printf("SetLeft :");
SetLeft( e, b );
printf("\n");
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
getch();
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TSetLeft( e, b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TSetLeft( e, b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0 ,MakeRoot('c')); DestroyBT(Temp);
TSetLeft( e, b );
printf(" ’Ґбв5 \n");
SetLeft('b',b);
TSetLeft( e, b );
//---------------------------SetRight---------------------------------------}
clrscr();
printf("SetRight\n");
printf("‚ўҐ¤ЁвҐ н«Ґ¬Ґв вЁЇ Char:"); cscanf("%c",&e);
printf("\n ’Ґбв1 \n");
b=CreateBT();
printf("BT=");
DisplayBT( b, 1); printf("\n");
printf("SetRight :");
SetRight( e, b );
printf("\n");
printf("BT=\n");
DisplayBT( b, 1); printf("\n");
getch();
printf(" ’Ґбв2 \n");
b=MakeRoot('a');
TSetRight( e, b );
printf(" ’Ґбв3 \n");
SetLeft('b',b);
TSetRight( e, b );
printf(" ’Ґбв4 \n");
Temp=LeftBT(b); b=ConsBT(RootBT( b ),0,MakeRoot('c')); DestroyBT(Temp);
TSetRight( e, b );
printf(" ’Ґбв5 \n");
SetLeft('b',b);
TSetRight( e, b );
}
Соседние файлы в папке Бинарные деревья1