Способы окраски узлов
Чтобы вмонтировать участок, мы сначала ищем в дереве пункт, куда его необходимо добавить. Последний узел постоянно присоединяется как последний элемент, исходя из этого оба его наследника будут NULL-узлами и планируются тёмными. За вставкой окрашиваем узел в красный окрас. После этого рассматриваем предыдущий элемент и проверяем, не нарушается ли зелено-коричневое свойство. Ежели необходимо, мы перекрашиваем модуль и делаем поворот, для того, чтобы сбалансировать бинарное дерево.
Записав синий участок с парой 0-правнуками, мы оставляем свойство коричневой высоты (свойство 3). Но, при этом может случиться разрушенным качество 1, согласно каковому два потомка зеленого узла заведомо коричневы. В нашем моменте оба правнука свежего участка темны по определению (потому, что они есть NIL-узлами), так что обговорим ситуацию, когда дед созданного узла красный: при этом будет разрушено качество 3. Всякая корректировка, делаемая при вписке участка, заставляет нас стать в списке на один такт. В данном обстоятельстве до остановки алгоритма будет предпринято 1 вращение (3, если модуль был правым правнуком).
|