Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:СиАОД1
.CPP#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
struct Nd { int d; //‘вагЄвга ¤«п еа ҐЁп 㧫 ¤ҐаҐў
Nd * lft;
Nd * rgt;
} ;
int num=0, tall = 0, offset=40;
Nd * MakeTree(int level) //=== ‘®§¤ ЁҐ ¤ҐаҐў ў Ї ¬пвЁ ===
{ Nd * v;
int Y = level < random(7);
if (Y) {
v = new Nd;
//v->d = ++num; ¤«п Їаאַ© 㬥а жЁЁ
v->lft = MakeTree(level+1);
v->rgt = MakeTree(level+1);
v->d = ++num; // ®Ўа в п 㬥а жЁп
}
else v = NULL;
return v;
}
void OutTree(Nd * v, int r, int c) //=== ЋЎе®¤ ¤ҐаҐў : ‚л¤ з нЄа ===
{
gotoxy(c, r);
printf("%c", v->d+'a'); //‚›‚Ћ„ ўҐаиЁл ў в®зЄг (c,r)
if (v->lft) OutTree(v->lft, r+1, c-(offset>>r));
if (v->rgt) OutTree(v->rgt, r+1, c+(offset>>r));
if( r > tall)
tall = r;
}
void Analyse(Nd *v)
{
printf("%c", v->d+'a');
if( v->lft)
Analyse(v->lft);
if (v->rgt)
Analyse(v->rgt);
}
void main()
{ Nd * root;
randomize();
do
{
root = MakeTree(0);
}
while( !root );
clrscr();
OutTree(root, 1, 40);
gotoxy(20,18);
printf("\n\tЏ®а冷Є ®Ўе®¤ ўҐаиЁ: ");
Analyse(root);
printf( "\n\tBisota tree is: %d", tall );
gotoxy(20,23);
puts("=== The End ===");
getch();
}
Соседние файлы в предмете Программирование