Balanced search tree. AVL-tree

AVL-tree (kashfiyotchilari Adelson-Velsky va Landis'lardan olingan) yana bir balanslangan binary search tree. AVL-tree'ga o'tishdan oldin, balanced binary tree haqida eslab olamiz.
Dasturchi, frilanser, gik va introvert

AVL-tree (kashfiyotchilari Adelson-Velsky va Landis'lardan olingan) yana bir balanslangan binary search tree. AVL-tree'ga o'tishdan oldin, balanced binary tree haqida eslab olamiz.

B-tree 2-3 tree'ga o'xshash, ammo bir necha jihatlar bilan farqlanadi. Har bir node'da M-1 gacha key qo'shiladi. Bunda M bitta blokdagi ma'lumotlar soni.

Red-black tree'dagi node'ning binary search tree node'idan farqi - unga color atributi qo'shilgan. Color node'ning qizil yoki qizilmas ekanini aniqlash uchun kerak bo'ladi.

2-3 tree haqida tanishib chiqqan bo'lsangiz, unda node qo'shishda ko'p shartlarni hisobga olish kerak bo'lardi. Umuman, 2-3 tree'ni kodda ifodalash qiyin edi. Red-black tree mana shu insertdagi qiyinchiliklarga yechim sifatida keladi.

Balanced search tree'da biz binary search tree'ning uzunligini kamaytirish hisobiga, worst case'ni O (log N) gacha tushiramiz.

Agile yondashuvi jamoalarni innovatsiya qilishga, o'zgarishlarga tezda reaksiya bildirishga undaydi. Shu sababli kompaniyalar agile metodologiyasini qo'llashga, shu jumladan, Scrum, Kanban, Lean kabi freymvorklaridan foydalanishga harakat qilishadi.

Dasturlash jarayonida loyihani boshqarishning turlicha yondashuvlari mavjud bo'lib, ularning ba'zilari eski metodlarning yangicha ko'rinishi bo'lsa, boshqalari yangicha uslub sifatida kirib keldi. Bugungi kunda sohada ko'proq ikki yondashuv - Agile (Scrum, Kanban, Lean, va hk.) va an'anaviy Waterfal

BSTga element qo'shish, o'chirish, qidirish, maksimum/minimum elementni chiqarish uchun API yozamiz. APIning tuzilishi quyidagicha bo'ladi.

Binary search tree (BST) - chap child'ining qiymati o'zidan kichik bo'lgan, o'ng child'ining qiymati o'zidan katta bo'lgan node'lardan iborat binary tree.
Dictionary (yoki Symbol table) - obyektlar guruhini o'zida jamlagan ma'lumot tuzilmasi. Unda o'zaro bog'langan kalit (key) va qiymat (value) guruhi saqlanadi. Dictionary'dan ma'lumotni key'ni ko'rsatgan holda olinadi.