Структура данных: возврат такой же формы BST со значениями другого BST - PullRequest
1 голос
/ 07 мая 2020

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

что мы называем «Равно топологическим» (я думаю, это так / хорошее название для этого)

Например:

T1 (определены значения)

T1 Image

T2 (определил форму):

T2 Image

Должен вернуться:

The Resault

What I ' Я пробовал до сих пор думать о среднем значении / среднем, однако это не работает каждый раз, или подумать о том, возможно, построить дерево AVL, а затем вращать его, пока мы не найдем решение, но я не имею в виду, сработает ли это, или имеет временную сложность O(n). Любая помощь будет оценена по достоинству! Спасибо!

1 Ответ

0 голосов
/ 07 мая 2020

Обойти T1 и записать значения в массив (в отсортированном порядке они будут). Затем создайте копию T2 (если необходимо) и пройдитесь по ней, записывая значения из массива одно за другим. Это будет использовать 2 обхода, так что это Θ (n). Обходим оба дерева в порядке левое поддерево - вершина - правое поддерево.

...