Эта вопрос в значительной степени объясняет, что они могут, но не показывает никаких примеров наличия двух разных деревьев с одним и тем же обходом предварительного заказа.
Также упоминается, что обход по порядку двух разных деревьев может быть одинаковым, хотя они структурно разные. Есть ли пример этого?
trees
binary-trees
graph-traversal
search-trees
Шаран Дуггирала
источник
источник
Ответы:
Примеры дерева (изображение) :
Это пример, который соответствует вашему сценарию. Значение корня дерева A равно 1, у него есть левый потомок со значением 2, а у его левого потомка также есть левый потомок со значением 3.
Значение корня дерева B равно 1, левый дочерний элемент со значением 2 и правый дочерний элемент со значением 3.
В обоих случаях обход Предзаказа составляет 1-> 2-> 3.
источник
Предположим, вы рассматриваете деревья изN узлов. Теперь возьмите любое двоичное дерево с N узлами и назовите узлы в соответствии с их нумерацией предварительного заказа. Тогда ясно, что последовательность предварительного заказа дерева будет 1 , 2 , … , n
Это означает, что мы можем назвать узлы любой двоичной древовидной структуры так, чтобы она генерировала ту же последовательность предварительного заказа, что и последовательность другого заданного дерева.
Это не будет работать, если мы должны принять другие свойства дерева. Например, если предполагается, что дерево является двоичным деревом поиска со всеми разными ключами, его последовательность предварительного заказа будет однозначно определять дерево.
источник
Подсчет аргументов
Число немеченых двоичных деревьев вN узлах равно Nго СN= ( 2 н ) ! / ( n ! ( n + 1 ) ! ) . Например, есть 5 бинарных деревьев из 3 узлов,
В отличие от них толькон ! обходы дерева из N узлов. Поскольку мы просто умножили первое на н ! СN> 1 n > 1. N
источник
Что касается вашего второго вопроса, да, два структурно разных дерева могут иметь одинаковый обход по порядку. Один из таких примеров:
Обход обоих деревьев одинаков. 2 -> 1 -> 3
источник