node nomli yangi
toifa yaratamiz:
class node { public: int info; node *left; node *right; }; Endi yuqoridagi belgilashlarda keltirilgan ko‟rsatkichlarni shu toifada
yaratib olamiz.
node *tree=NULL; node *next=NULL; int n,key; cout<<"n=";cin>>n; Nechta element (n) kiritilishini aniqlab oldik va endi har bir element
qiymatini kiritib, binar daraxt tuzishni boshlaymiz.
for(int i=0;i left right info
67
node *p=new node; node *last=new node; cin>>key; p->info=key; p->left=NULL; p->right=NULL; if(i==0){ tree=p; next=tree;sontinue;} next=tree; while(1){ last=next; if(p->infoinfo) next=next->left; else next=next->right; if(next==NULL) break; } if(p->infoinfo) last->left=p; else last->right=p; } Bu yerda
p hali aytganimizdek, kiritilgan kalitga mos hosil qilingan yangi
element ko‟rsatkichi,
next yangi element joylashishi kerak bo‟lgan joyga olib
boradigan shox adresi ko‟rsatkichi, ya‟ni u har doim
p dan bitta qadam oldinda
yuradi,
last esa ko‟rilayotgan element kimning avlodi ekanligini bildiradi, ya‟ni u
har doim
p dan bir qadam orqada yuradi (4.4-rasm).
4.4-rasm. Binar daraxt elementlarini belgilash
Shunday qilib binar daraxtini ham yaratib oldik. Endigi masala uni ekranda
tasvirlash kerak, ya‟ni u ko‟rikdan o‟tkaziladi yoki vizuallashtirsa ham bo‟ladi.