O’zbekiston respublikasi aloqa, axborotlashtirish va telekommunikatsiya texnologiyalari davlat qo’mitasi
Daraxt ko‟rigining rekursiv funksiyalari
Yüklə
0,92 Mb.
səhifə
28/52
tarix
20.10.2022
ölçüsü
0,92 Mb.
#65616
1
...
24
25
26
27
28
29
30
31
...
52
O’zbekiston respublikasi aloqa, axborotlashtirish va telekommuni
Daraxt ko‟rigining rekursiv funksiyalari
int pretrave(node *tree){ if(tree!=NULL) {int
a=0,b=0;
if(tree->left!=NULL) a=tree->left->info; if(tree->right!=NULL) b=tree->right->info;
cout<
info<<" -
chapida
"<
o’ngida
"<
pretrave(tree->left); pretrave(tree->right);
}
return 0;
};
int intrave(node *tree){ if(tree!=NULL)
{
intrave(tree->left); cout<
info; intrave(tree->right);
}
return 0;
};
int postrave(node *tree){ if(tree!=NULL)
{
postrave(tree->left); postrave(tree->right); cout<
info;
}
return 0;
};
Daraxtning har bir tuguni 4.6-rasmdagidek oraliq (2, 3, 5, 7 elementlar) yoki
terminal (daraxt “barg”i) (4, 9, 10, 11, 8, 6 elementlar) bo‟lishi mumkin.
4.6-rasm. Daraxtsimon tuzilma
Agar tugunning otasi yo‟q bo‟lsa, bu tugun ildiz hisoblanadi. Buni aniqlash uchun dastur kodini keltiramiz. Dasturda p izlanayotgan tugun.
if(p==tree) cout<<”bu tugun ildiz ekan”; else cout<<”bu tugun ildiz emas”;
Biz izlayotgan element daraxtda oraliq tugun ekanligini tekshirish uchun uning yoki o‟ng shoxi, yoki chap shoxi, yoki ikkalasiyam mavjudligini tekshirish kerak. Agar ikkala shoxi NULL dan farqli bo‟lsa, bu 2 ta farzandga ega oraliq tugun hisoblanadi, yoki ikkalasidan bittasi NULL ga teng bo‟lsa, bu tugun 1 ta farzandga ega oraliq tugun hisoblanadi. Berilgan p element daraxtning oraliq tugun ekanligini aniqlash dastur kodini keltiramiz.
if(p!=tree){
if((p->left!=NULL)&&(p->right!=NULL)) cout<<”bu tugun 2 ta farzandga ega oraliq tugun”;
else if((p->left!=NULL)||(p->right!=NULL) cout<<”bu 1 ta farzandga ega oraliq tugun”;
} else cout<<”bu tugun oraliq tugun emas”;
Biz izlayotgan tugun terminal tugunligini tekshirishni ko‟rib chiqamiz. Agar tugunning har ikkala shoxi NULL ga teng bo‟lsa, bu
terminal tugun
hisoblanadi. Dastur kodini keltiramiz.
if((p->left==NULL)&&(p->right==NULL)) cout<<”bu tugun terminal tugun”;
else cout<<”bu terminal tugun emas”;
Yüklə
0,92 Mb.
Dostları ilə paylaş:
1
...
24
25
26
27
28
29
30
31
...
52
Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2025
rəhbərliyinə müraciət
gir
|
qeydiyyatdan keç
Ana səhifə
Stomatologiya
Anesteziologiya
Cərrahlıq
Ginekologiya
Tibb
yükləyin