• 46-rasm. a) B daraxtda izlash algoritmining bajarilishi
  • Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov




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

    10.2. B daraxtda amallar 
    B daraxtda izlash algoritmi.
    Yuqorida aytib o'tilganidek, B daraxti 
    barcha standart qidirish, qo'shish, o'chirish va hokazo amallarni bajaradi. 
    B daraxtida izlash binar daraxtni qidirishga juda o'xshaydi, faqat bu 
    yerda biz avlodga yo'lni 2 variantdan emas, balki bir nechta variantdan 
    tanlashimiz kerak. Aks holda, farqi bo'lmay qoladi. Quyidagi 46-rasmda 
    27-kalitni qidirish ko'rsatilgan. Tasvirni koʻrib chiqaylik (va shunga mos 
    ravishda standart qidirish algoritmi):

    Biz ildiz kalitlarini kerak bo'lguncha o'tamiz. Bu holda 31 ga 
    yetdik. 


    133 

    Bu kalitning chap tomonidagi avlodga tushamiz. 

    27 dan kichik boʻlgunga qadar yangi tugunni kalit boʻyicha 
    izlaymiz. Bunday holda, biz 27 ni topdik va to'xtadik. 
    46-rasm. a) B daraxtda izlash algoritmining bajarilishi 
    Izlash amali O(t*logt n) vaqtida bajariladi, bu yerda 
    t
    - minimal 
    daraja. Bu yerda disk amallarini faqat O (logt n) da bajarishimiz muhim 
    qismidir. 
    B daraxtlarda element qoʻshish. 
    Izlashdan farqli o'laroq, qo'shish 
    usuli ikkilik daraxtga qaraganda ancha murakkab, chunki yangi barg 
    yaratish va unga kalit qo'yish mumkin emas, chunki B daraxtining 
    xususiyatlari buziladi. Kalitni allaqachon to'ldirilgan bargga kiritish 
    mumkin emas. Tugunni ikkiga bo'lish amali kerak, agar barg to'ldirilgan 
    bo'lsa, unda 
    2t-1
    kalit bor edi. 2 ga 
    t-1
    ga bo'lamiz undan kam kalitlar va 
    oxirgi t-1 ajdod tuguniga o'tkaziladi. Shunga ko'ra, agar avlod-ajdod 
    tuguni ham to'lgan bo'lsa, yana bo'lishimiz kerak va shunga o'xshash 
    ildizgacha (agar ildiz ajralgan bo'lsa, unda yangi ildiz paydo bo'ladi va 
    daraxt chuqurligi oshadi). Oddiy ikkilik daraxtlar singari, joylashtirish 
    ham ildizdan barggacha bir o'tishda amalga oshiriladi.Har bir 
    iteratsiyada (yangi kalit uchun pozitsiyani qidirishda - ildizdan 
    barggacha) o'tadigan barcha to'ldirilgan tugunlarni ajratamiz (bargni 
    ham o'z ichiga olgan holda). Shunday qilib, agar natijada tugunni 
    ajratish zarur bo'lsa, uning avlod-ajdodi to'ldirilmaganligiga koʻrishimiz 
    mumkin. 


    134 
    Quyidagi 47-rasmda xuddi o'sha daraxt qidirilmoqda (t = 3). Faqat 
    hozir biz "15" kalitini qo'shamiz. Yangi kalitning o'rnini qidirib,
    a) 
    b)

    Download 4,61 Mb.
    1   ...   76   77   78   79   80   81   82   83   ...   111




    Download 4,61 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov

    Download 4,61 Mb.
    Pdf ko'rish