Встречается на собеседованиях • сегодня
В чем разница между обычным и красно-черным деревом
Красно-черное дерево — это самобалансирующееся бинарное дерево поиска, где каждый узел имеет цвет (красный или черный). Оно поддерживает баланс при операциях вставки/удаления с помощью правил:
- Корень всегда черный
- Нет двух красных узлов подряд
- Все пути от узла до листьев содержат одинаковое количество черных узлов
Обычное бинарное дерево не гарантирует баланс, что может привести к вырождению в список (O(n) вместо O(log n) для операций).
Пример вставки в красно-черное дерево (Java):
java
public void insert(int key) {
Node newNode = new Node(key);
// Обычная вставка как в BST
// Затем балансировка:
fixInsert(newNode);
}
private void fixInsert(Node node) {
while (node != root && node.parent.color == RED) {
// Логика перекрашивания и поворотов
}
root.color = BLACK;
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы