Красно-черное-дерево
Красно-черное дерево (Red-Black Tree) — это разновидность сбалансированного двоичного дерева поиска, в котором каждый узел имеет дополнительный атрибут: цвет (красный или черный). Это дерево используется для обеспечения того, чтобы время выполнения базовых операций, таких как поиск, вставка и удаление, оставалось логарифмическим даже в худшем случае.
При вставке нового узла в красно-черное дерево, этот узел изначально добавляется как красный. После вставки выполняется корректировка дерева для восстановления его свойств, если они были нарушены. Эта корректировка может включать:
Удаление узла также может нарушить свойства красно-черного дерева. Чтобы их восстановить, могут потребоваться те же операции: перекраска и ротация узлов.
Рассмотрим последовательность вставок в красно-черное дерево:
10(B)
10(B)
\
20(R)
10(B)
\
20(R)
\
30(R)
20(B)
/ \
10(R) 30(R)
Красно-черные деревья часто используются в реализации таких структур данных, как:
Эти деревья обеспечивают эффективные вставку, удаление и поиск элементов, что делает их полезными в приложениях, требующих быстрого доступа к отсортированным данным.