GetFlag (){return Flag;}  int  main




Download 1,33 Mb.
Pdf ko'rish
bet36/56
Sana18.05.2024
Hajmi1,33 Mb.
#242340
1   ...   32   33   34   35   36   37   38   39   ...   56
Bog'liq
b2d1fe5c-9484-4aea-a5e7-95281604b19a

GetFlag
(){return Flag;} 
int 
main
() 
{ int n,key,s; node *tree=NULL,*next=NULL; 
cout<<"n="; cin>>n; int arr[n]; 
for(int i=0; i
node *p=new node; 
node *last=new node; 
cin>>s; 
p->info=s; 
p->left=NULL; 


80 
p->right=NULL; 
if(i==0){tree=p; next=tree; continue; } 
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;} 
cout<
cout<<"\nbinar daraxt:\n"; 
vizual(tree,0); 
AVLtree(tree); 
 if(GetFlag()) cout<<"ha, muvozanatlangan daraxt"; else cout<<"yo’q, 
muvozanatlanmagan daraxt";cout<
getch(); 

 
Dastur natijasi 
 
 
4.12. Binar daraxtni vizuallashtirish 
 
Binar 
daraxtni 
ko‟rikdan o‟tkazayotganda biz yuqorida har bir 


81 
tugunni o‟ngida va chapida turgan tugunlarni so‟z bilan ifodaladik. Lekin bu usul 
bir muncha noqulay. Daraxtni vizual ko‟rinishda ifodalash uni anglashning juda 
qulay usuli hisoblanadi. Daraxtni vizuallashtirishning grafik ko‟rinishi va konsol 
oynasida ifodalash kabi turlari mavjud. Shundan konsol oynasida daraxtni 
vizuallashtirishni ko‟rib chiqamiz. Bunda sonlar daraxt shaklida joylashtiriladi. 
Quyida bunday usulning dastur kodi keltirilgan. 
void vizual(node *tree,int l) 
{ int i; 
if(tree!=NULL) { 
vizual(tree->right,l+1); 
for (i=1; i<=l; i++) cout<<" "; 
cout<info<
vizual(tree->left,l+1); 

}
Dastur kodi quyidagi 4.10 a-rasmdagi daraxtni konsol ekranida 4.10 b-rasm 
ko‟rinishda ifodalaydi. 
a. b.
4.10-rasm. a - binar daraxt; b - binar daraxtning ekranda namoyon bo‟lishi
 
Yuqorida keltirilgan bir nechta algoritmlarni qo‟llab bitta misol ko‟rib 
chiqamiz. 


82 
Misol: berilgan binar daraxtning balandligini aniqlang va muvozanatlang.

Download 1,33 Mb.
1   ...   32   33   34   35   36   37   38   39   ...   56




Download 1,33 Mb.
Pdf ko'rish