26. Расскажите про красно-черное дерево.
UNKNOWNУсовершенствованная версия бинарного дерева.
Каждый узел в к/ч дереве имеет дополнительное поле - цвет. К/ч дерево отвечает следующим требованиям:
- Узел либо красный, либо черный
- Корень - черный.
- Все листья - черные и не хранят данных.
- Оба потомка каждого красного узла - черные.
- Любой простой путь от узла-предка до листового узла-потомка содержит одинаковое число черных узлов. Если не одинаковое, то происходит переворот.
При добавлении постоянно увеличивающихся/уменьшающихся чисел в бинарное дерево, оно вырождается в связанный список и теряет свои преимущества. Тогда как к/ч дерево может потребовать до двух поворотов для поддержки сбалансированности, чтобы избежать вырождения.
При операциях удаления в бинарном дереве для удаляемого узла надо найти замену. К/ч дерево сделает тоже самое, но потребует до трёх поворотов для поддержки сбалансированности.
В этом и состоит преимущство.
Сложность поиска, вставки и удаления - O(log(n))
Предыдущий вопрос: 25. Расскажите про бинарное дерево.
Следующий вопрос: 27. Расскажите про линейный и бинарный поиск.
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне