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