Меня попросили нарисовать бинарное дерево поиска, в котором как обход по порядку, так и обход по порядку обрабатывают узлы в порядке "ATTA"
. Я пробовал много разных способов, но в итоге он работает только для одного из методов обхода.
Нарисуйте бинарное дерево, учитывая ATTA как обходы в порядке и обратном порядке
Ответы (1)
Я действительно считаю, что вы просто говорите об обычном двоичном дереве, потому что создать такое двоичное дерево поиска невозможно.
Учитывая, что пост-порядок заканчивается на A
, мы знаем, что корень должен быть A
.
Учитывая, что у нас есть только 2 A
в порядке, а корень A
, мы знаем, что либо левое, либо правое поддеревья корня пусты.
Учитывая, что предпоследним узлом в пост-порядке является T
, мы знаем, что дочерний элемент корня должен быть T
.
Отсюда мы можем просто проверить оставшиеся 4 возможности:
A A A A
/ / \ \
T T T T
/ \ / \ / \ / \
A T T A A T T A
Inorder ATTA TTAA ATAT ATTA
Postorder ATTA TATA ATTA TATA
Итак, единственная возможность:
A
/
T
/ \
A T
... и это не бинарное дерево поиска.
person
Bernhard Barker
schedule
03.11.2013