• 49-rasm. B daraxtda element oʻchirish algoritmining bajarilishi 10.3. B-daraxtni realizatsiya qilish /* B-daraxtning minimum darajasi*/ define T 2
  • -rasm. B daraxtda element oʻchirish algoritmining bajarilishi




    Download 4,61 Mb.
    Pdf ko'rish
    bet82/111
    Sana18.05.2024
    Hajmi4,61 Mb.
    #241929
    1   ...   78   79   80   81   82   83   84   85   ...   111
    Bog'liq
    ALGORITMLAR VA MA‟LUMOTLAR STRUKTURALARI

    48-rasm. B daraxtda element oʻchirish algoritmining bajarilishi 
    2) Endi x ichki tugunidan k kalitini olib tashlashni ko'rib chiqaylik. 
    Agar k kalitidan oldingi avlod tugunida t -1 dan ortiq kalitlar bo'lsa, biz 
    k
    1
    ni topamiz - bu tugunning pastki daraxtida k. Uni o'chirib tashlaymiz 
    (Algoritmni rekursiv tarzda ishga tushiramiz). Manba tugundagi k ni k
    1
    bilan almashtiramiz. Agar k kalitidan keyingi avlod tugunida t-1 dan 
    ortiq kalit bo'lsa, biz ham xuddi shunday ishni bajaramiz. Agar 
    ikkalasida ham (keyingi va oldingi avlod tugunlarida) t-1 kalitlari bo'lsa, 
    biz bu avlodlarni birlashtiramiz, k-ni ularga o'tkazamiz, so'ngra k-ni 
    yangi tugundan olib tashlaymiz (biz algoritmimizni rekursiv tarzda ishga 


    136 
    tushiramiz). Agar ildizning oxirgi 2 avlodi birlashsa, ular ildizga 
    aylanadi va oldingi ildiz olib tashlanadi. Rasm quyida koʻrsatilgan (49-
    rasm), bu yerda "11" ildizdan chiqariladi (keyingi tugunda t-1 avlodlari 
    ko'p bo'lgan holat). 
    O'chirish jarayoni O (t logt n) qo'shilishi bilan bir xil vaqtni oladi va 
    disk operatsiyalari faqat O (h) talab qilinadi, bu yerda h - daraxt 
    balandligi. 
    49-rasm. B daraxtda element oʻchirish algoritmining bajarilishi 
    10.3. B-daraxtni realizatsiya qilish 
    /* B-daraxtning minimum darajasi*/ 
    #define T 2 
    /* 2-3-4 B-tree */ 
    struct btree { 
    int leaf; 
    int nkeys; 
    int *key; 
    int *value; 
    struct btree **childj 
    }; 
    B-daraxtni hosil qilish 
    struct btree *btree_create() 

    struct btree *node; 
    node = malloc(sizeof(*node)); 
    node->leaf = 1; 
    node->nkeys = 0; 
    node->key = malloc(sizeof(*node->key) * 


    137 

    Download 4,61 Mb.
    1   ...   78   79   80   81   82   83   84   85   ...   111




    Download 4,61 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    -rasm. B daraxtda element oʻchirish algoritmining bajarilishi

    Download 4,61 Mb.
    Pdf ko'rish