Встречается на собеседованиях • сегодня
Как выглядит красно-черное дерево
Красно-черное дерево — это самобалансирующееся бинарное дерево поиска, где каждый узел имеет цвет (красный или черный). Оно удовлетворяет следующим свойствам:
- Каждый узел либо красный, либо черный.
- Корень всегда черный.
- Листья (NIL-узлы) считаются черными.
- У красного узла оба потомка черные (нет двух красных узлов подряд).
- Все пути от узла до листьев содержат одинаковое количество черных узлов.
Пример структуры узла:
java
class Node {
int data;
Node left, right, parent;
boolean color; // true - красный, false - черный
}Балансировка достигается за счет операций поворота и перекрашивания при вставке/удалении. Пример поворота влево:
java
void rotateLeft(Node x) {
Node y = x.right;
x.right = y.left;
if (y.left != null) y.left.parent = x;
y.parent = x.parent;
if (x.parent == null) root = y;
else if (x == x.parent.left) x.parent.left = y;
else x.parent.right = y;
y.left = x;
x.parent = y;
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы