Шаг 133.
Основы языка Haskell. Рекурсивные типы данных. Бинарные деревья поиска. Подобные, эквивалентные и изоморфные бинарные деревья

    На этом шаге мы введем указанные понятия.

Определение [1, с.373] (содержательное).
Будем говорить, что два бинарных дерева T1 и T2 подобны, если они имеют одинаковую структуру (другими словами, подобие бинарных деревьев означает, что графические изображения деревьев T1 и T2 имеют одинаковую "конфигурацию").
Определение [1, с.373] (индуктивное).
Подобными бинарными деревьями называются бинарные деревья, которые:
  • (1) либо оба пусты;
  • (2) либо оба непусты, а их левые и правые поддеревья соответственно подобны.

    Обозначим Info(u) информацию, содержащуюся в вершине u.

Определение [1, с.373] (содержательное).
Будем говорить, что  бинарные деревья T1 и T2 эквивалентны, если:
  • (1) они подобны;
  • (2) соответствующие вершины содержат одинаковую информацию.
Определение [1, с.352] (формальное).
Эквивалентными бинарными деревьями T1 и T2 называются бинарные деревья, которые:
  • (1) либо оба пусты;
  • (2) либо оба непусты и Info(Корень (T)) = Info(Корень (T')), а их левые и правые поддеревья соответственно эквивалентны.

    Пример. Рассмотрим четыре бинарных дерева:


Рис.1. Бинарные деревья

    Первые два из них - не подобны; второе, третье и четвёртое деревья - подобны; второе и четвертое - эквивалентны.

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

(1)Кнут Д.Э. Искусство программирования, том 1. Основные алгоритмы. - М.: Издательский дом "Вильямс", 2000. - 720 с.

    На следующем шаге мы рассмотрим бинарное дерево поиска.




Предыдущий шаг Содержание Следующий шаг