Блок задач

3. Структуры данных

Темы
Сложность 7

Задача «Красно-черное дерево»

Реализовать модуль для работы с красно-черными деревьями.

Интерфейс должен быть идентичен обычному дереву поиска (см. вот эту задачу). Все требования по задачи аналогичны.

По умолчанию реализация функции удаления не требуется, однако может быть реализована в качестве дополнительного задания после самостоятельного изучения алгоритма.

Дополнительно на каждом шаге тестов необходимо проверять корректность Красно-черного дерева:

  • Корень — чeрный.
  • Оба потомка каждого красного узла — черные.
  • Всякий простой путь от данного узла до любого листового узла, являющегося его потомком, содержит одинаковое число черных узлов.

Для этого нужно добавить в модуль соответствующую функцию check(tree).