• Daraxt ko ‟rigining rekursiv funksiyalari
  • O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti




    Download 18,84 Mb.
    bet96/163
    Sana16.01.2024
    Hajmi18,84 Mb.
    #138868
    1   ...   92   93   94   95   96   97   98   99   ...   163
    Bog'liq
    O zbekiston respublikasi oliy va o rta maxsus ta lim vazirligi t

    Daraxt “ko‟rigi” funksiyalari
    Binar daraxt quyidagicha berilgan bo‟lsin:

    5-rasm. 3 ta elemetdan iborat binar daraxt


    Binar daraxtlari ko‟rigini 3 tamoyili mavjud.
    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.
    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; };
    2. int intrave(node *tree){if(tree!=NULL) {intrave(tree->left);
    cout<info;
    intrave(tree->right); } return 0; };
    3. int postrave(node *tree){


    if(tree!=NULL) {
    postrave(tree->left);
    postrave(tree->right);
    cout<info; } return 0; };
    Daraxtning har bir tuguni 6-rasmdagidek oraliq (2, 3, 5, 7 elementlar) yoki terminal (daraxt “barg”i) (4, 9, 10, 11, 8, 6 elementlar) bo‟lishi mumkin.

    6-rasm. Daraxtsimon tuzilma
    if(p==tree) cout<<”bu tugun ildiz ekan”;
    else cout<<”bu tugun ildiz emas”;
    2. 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”;
    3. 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”;

    Download 18,84 Mb.
    1   ...   92   93   94   95   96   97   98   99   ...   163




    Download 18,84 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi toshkent axborot texnologiyalari universiteti

    Download 18,84 Mb.