Встречается на 2% собеседований по Java

Какие знаешь способы сбалансировать дерево

В Java есть несколько способов сбалансировать дерево:

  1. AVL-деревья - поддерживают баланс через повороты при добавлении/удалении узлов, гарантируют разницу высот поддеревьев ≤1
java
class AVLNode {
    int key, height;
    AVLNode left, right;
    // методы поворотов: leftRotate(), rightRotate()
}
  1. Красно-черные деревья - используют цветовую маркировку узлов и правила балансировки (например, корень всегда черный, красные узлы не могут иметь красных детей)

  2. B-деревья - оптимизированы для работы с диском, поддерживают множество ключей в узле

  3. Splay-деревья - перемещают часто используемые узлы ближе к корню через операцию "splay"

  4. TreeMap в Java использует красно-черное дерево под капотом для реализации сбалансированного дерева:

java
TreeMap<Integer, String> balancedTree = new TreeMap<>();

Балансировка важна для поддержания O(log n) времени операций поиска, вставки и удаления.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы