Сначала нужно реализовать структуру бинарного дерева на Python (пример на Java во вложенном файле).
Затем необходимо превратить это дерево в полноценное левостороннее красно-черное дерево и реализовать в нем метод добавления новых элементов с балансировкой.
Красно-черное дерево имеет следующие критерии: каждая нода имеет цвет (красный или черный); корень дерева всегда черный; новая нода всегда красная; красные ноды могут быть только левым ребенком; у красной ноды все дети черного цвета.
Соответственно, чтобы данные условия выполнялись, после добавления элемента в дерево необходимо произвести балансировку, благодаря которой все критерии выше станут валидными. Для балансировки существует 3 операции – левый малый поворот, правый малый поворот и смена цвета.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |