Алгоритм раскраски элементов

Дабы вставить участок, мы сперва выслеживаем в списке пункт, куда его следует добавить. Последний модуль всегда приращивается как элемент с указателем NULL, оттого два его потомка являются NULL-узлами и предполагаются чёрными.

За вкраплением атрибутируем модуль в зеленый окрас. После этого рассматриваем предка и проверяем, не расстраивается ли сине-чёрное свойство. Если необходимо, мы перекрашиваем модуль и делаем поворот, для того, чтобы согласовать бинарное дерево.

 

Вставив синий модуль с двумя NIL-правнуками, мы оставляем свойство коричневой ступени (атрибут 2). Но, при сим может явиться разрушенным признак 3, согласованно скоим оба потомка красного участка непременно черны. В нашем виде два потомка созданного участка черны по атрибуту (ввиду того, что они есть NIL-модулями), так что обговорим ситуацию, когда дед нового узла зеленый: при этом будет преступлено характеристика 5. Всякая корректировка, создаваемая при вставке участка, вынуждает нас пройти в бинарном дереве на один шаг. В данном случае до отсрочки процедуры будет произведено 1 вращение (3, ежели узел был значимым внуком).

Leave a reply