140
tree = btree_insert(tree, 12, 0);
tree = btree_insert(tree, 9, 0);
tree = btree_insert(tree, 18, 0);
return 0;
}
Mavzu yuzasidan savollar:
1. B daraxt nima
2. B daraxtda izlash qanday amalga oshiriladi?
3. B daraxtda element oʻchirish qanday amalga oshiriladi?
4. B daraxtda element qoʻshish qanday amalga oshiriladi?
5. B-daraxt ma‘lumotlar strukturasi qoʻllaniladigan
sohalarga
qaysilar kiradi?
Mustaqil ishlash uchun masalalar:
1. B daraxtida element olib tashlash funksiyasini yozing va uni
daraxtda qoʻllang
2. B-daraxtda element qoʻshish funksiyasini optimallashtiring
11-§. Ustivor navbatlar
Ko'pgina ilovalar kalitlarga ega bo'lgan elementlarni qayta ishlashni
talab qiladi, lekin ular to'liq tartibda va birdaniga hammasi emas.
Ko'pincha, biz bir qator narsalarni to'playmiz, so'ngra
eng katta kalit
bilan ishlov beramiz, keyin ko'proq narsalarni to'playmiz, so'ngra hozirgi
eng katta kalit bilan ishlov beramiz va hokazo. Bunday muhitda tegishli
ma'lumotlar turi ikkita amalni qo'llab-quvvatlaydi:
maksimal miqdorni
oʻchirish va joylashtirish. Bunday ma'lumotlar turi
ustivor navbat
deb
nomlanadi.
Ustivor navbatlar odatdagi navbat yoki stek ma'lumotlar tuzilmasiga
o'xshash abstrakt ma'lumotlar turi bo'lib, unda har bir element
qo'shimcha ravishda bogʻliq bo'lgan "ustivorlikka" ega.
Ustivor
navbatda yuqori ustivor element past ustivor elementdan oldin xizmat
qiladi.
141
Ustivor navbatlar ko'pincha uyum (kucha) bilan
amalga oshirilsa-da,
ular konseptual jihatdan uyumlardan farq qiladi. Ustivor navbat - bu
"ro'yxat" yoki "karta" ga o'xshash narsa; Ro'yxat bogʻlangan ro'yxat yoki
massiv yordamida amalga oshirilishi mumkin bo'lganidek,
ustivor
navbat uyum yoki tartiblanmagan massiv kabi boshqa usullar yordamida
amalga oshirilishi mumkin.