Fan: Algoritmlar va ma'lumotlar strukturalari



Yüklə 207,32 Kb.
səhifə3/7
tarix24.11.2022
ölçüsü207,32 Kb.
#70315
1   2   3   4   5   6   7
Fan Algoritmlar va ma\'lumotlar strukturalari

4.5. Daraxt korigining rekursiv funksiyalari

  1. 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 ‘<
<
pretrave(tree->left);

pretrave(tree->right);

}

return 0;};


  1. int intrave(node *tree){ if(tree!=NULL) {


intrave(tree->left); cout<info; intrave(tree->right);

}

return 0; };


  1. 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



  1. 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”;


  1. 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”;

    1. 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ə 207,32 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin