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.
68
4.4. Daraxt “ko
‟
rigi” funksiyalari
4.5-rasmdagidek binar daraxt berilgan bo‟lsin:
4.5-rasm. 3 ta elemetdan iborat binar daraxt
Binar daraxtlari ko‟rigini uchta tamoyili mavjud.
Ularni berilgan daraxt
misolida ko‟rib chiqaylik:
1) Yuqoridan pastga ko‟rik (daraxt ildizini
qism daraxtlarga nisbatan
oldinroq ko‟rikdan o‟tkaziladi): A, B, C ;
2) Chapdan o‟ngga: B, A, C ;
3) Quyidan yuqoriga (ildiz qism daraxtlardan keyin ko‟riladi): B, C, A .
Daraxt ko‟rigi ko‟pincha ikkinchi usul bilan, ya‟ni tugunlarga kirish ularning
kalit qiymatlarini o‟sish tartibida amalga oshiriladi.
Dostları ilə paylaş: