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) *