На этом шаге мы закончим изучение этого вопроса.
4. Ситуация "чёрный брат с чёрным и красным племянниками".
(а) C - левый потомок D, Nl - чёрный узел, Nr - красный узел:
Исправим нарушение свойства чёрного узла:
(б) зеркальное отражение случая (а): C - правый потомок D, Nl - красный узел, Nr - чёрный узел:
Исправим нарушение свойства чёрного узла:
В рассмотренных случаях (а) и (б) свойство красного узла выполняется, т.к. не было введено никаких новых красных узлов.
Свойство чёрного узла также выполняется, т.к. все пути, проходящие через нарушающий узел, содержат теперь дополнительный чёрный узел. Пути, проходящие через дочерние деревья племянника, который был окрашен в красный цвет, содержат то же количество чёрных узлов, что и ранее.
Следовательно, во всех случаях свойство чёрного узла выполняется, и результирующее дерево является красно-чёрным.
(в) C - левый потомок D, Nl - красный узел, Nr - чёрный узел:
Исправим нарушение свойства чёрного узла:
(г) зеркальное отражение случая (в): C - правый потомок D, Nl - чёрный узел, Nr - красный узел:
Исправим нарушение свойства чёрного узла:
В рассмотренных случаях (в) и (г) свойство красного узла выполняется, т.к. не было введено новых красных узлов.
Свойство чёрного узла также выполняется, т.к. все пути, проходящие через нарушающий узел, содержат дополнительный чёрный узел.
Пути, проходящие через дочерние деревья племянника, который был окрашен в красный цвет, содержат то же количество чёрных узлов, что и ранее.
Следовательно, во всех случаях свойство чёрного узла выполняется, и результирующее дерево является красно-чёрным.
На следующем шаге мы приведем рассмотренный алгоритм на псевдокоде.