Бинарное преобразование дерева с использованием поворотов

Пока я изучал среднесрочные вопросы о двоичных деревьях, я нашел утверждение, что любое произвольное двоичное дерево с n-узлами может быть преобразовано в любое другое двоичное дерево с n-узлами с максимум 2*n-2 поворотами. Есть ли доказательства этому? Я нашел какое-то доказательство с асимптотическими обозначениями, но это было не так ясно. Я имею в виду, может кто-то объяснить / показать, почему это правда? И если он говорит, что двоичное дерево n-узла, включает ли оно корень?

2 ответа

Решение

Этот ответ взят из CLRS 3-е издание учебника вопрос 13.2-4.

Позволять

LEFT = бинарное дерево всего левого связного списка

ВПРАВО = бинарное дерево всего связанного справа списка

Вы можете легко повернуть ВЛЕВО в ПРАВО в (n-1) оборотах.

например: n = 3 
    3              2              1
  От 2 до 1 от 3 до 2
1                                    3

Доказательство: поскольку по определению каждое правое вращение будет увеличивать длину самого правого пути как минимум на 1. Поэтому, начиная с самого правого пути с длиной 1 (наихудший случай), вам нужно максимально (n-1) поворотов, выполненных для сделать это в право.

Таким образом, вы можете легко сделать вывод, что любая произвольная форма двоичного дерева с n узлами может повернуться в ПРАВО в течение (n-1) поворотов. Пусть T_1 будет узлом, которым вы начинаете. Пусть T_2 будет узлом, которым вы заканчиваете.

Вы можете повернуть T_1 вправо в течение (n-1) поворотов. Точно так же Вы можете повернуть T_2 к ПРАВО в пределах (n-1) поворотов.

Поэтому, чтобы повернуть T_1 в T_2, просто поверните T_1 в ПРАВО, а затем выполните обратное вращение, чтобы повернуть из ПРАВА в T_2.

Следовательно, вы можете сделать это в (n-1)+(n-1) = 2n-2 вращениях в верхней границе.

Надеюсь, это поможет!=)
Вскоре Чи Лунг, 
Университет Торонто 

Если утверждение относится к бинарным деревьям, а не к деревьям BST, я думаю, что это утверждение допустимо, поскольку нет ограничений на порядок узлов. И простая математическая индукция должна доказать утверждение.

Другие вопросы по тегам