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