Дизайн збалансованих дерев Бінарного пошуку: Дерево-чорне дерево Принципи
Table of Contents
Збалансовані двосторонні пошукові дерева є структурами даних, які підтримують сортування даних і забезпечують ефективні операції, такі як пошук, вставка і видалення. Два поширених типи - дерева AVL і Червоно-чорні дерева, кожен з унікальних принципів балансування, які оптимізовані продуктивності.
АВІЛ Дерева
Дерева AVL - це самобалансування двох двосторонніх пошукових дерев, де різниця висоти між лівими і правими субдеревами будь-якого вузла є на більшості. Цей суворий баланс забезпечує більш швидке пошук часу, але вимагає більш обертань при вставках і видаленні для збереження балансу.
При переході вузла стає небалансованою після операції обертання виконуються для відновлення майна AVL. Ці обертання включають в себе одиночні і подвійні обертання, які допомагають підтримувати різницю висоти.
Червоно-чорні дерева
Червоно-чорні дерева є типом самобалансування бінарного пошукового дерева, який призначає колір (червоний або чорний) до кожного вузла. Правила розмальовки забезпечують дерево залишається досить збалансованим, без шляху від кореня до листочка більше ніж двічі до тих пір, поки що ні.
Ключові властивості включають:
- Кожна вершина є або червоним або чорним.
- Корінь завжди чорний.
- Червоні вузли не можуть мати червоні діти.
- Кожен шлях від вузла до його нащадних листків містить однакову кількість чорних вузлів.
Ці властивості дозволяють Червоно-чорним деревам виконувати вставки і вилучення ефективно при збереженні балансу через перефарбовування і обертання.
Порівняння AVL та Червоно-чорних дерев
В якості дерева AVL і Red-Black мають на меті зберегти дерево, збалансоване для оптимальної продуктивності. Дерева AVL, як правило, мають бути більш суворим, забезпечуючи більш швидкий вигляд, але може знадобитися більше обертань при оновленні. Червоно-чорні дерева менш суворі, пропонуючи більш швидкі вставки і віднімання з злегка повільними виглядами.