Я работаю над практикой, пытаясь подготовиться к тесту. Сейчас я занимаюсь обходом дерева, и я думал, что разобрался с ними, но я добрался до этого вопроса и не могу правильно выполнить обходы по порядку или по порядку.
Вопрос в том:
Предположим, что в пустое бинарное дерево поиска в указанном порядке добавляются следующие элементы:
Meg, Stewie, Peter, Joe, Lois, Brian, Quagmire, Cleveland
Запишите элементы приведенного выше дерева в том порядке, в котором они будут видны при обходе в предварительном, последовательном и обратном порядке. Введите свои решения, разделив элементы пробелами и/или запятыми, например:
Неясно, как они должны быть добавлены, но я предполагаю, что в алфавитном порядке, потому что именно так я делал звездные войны до этого, и это сработало.
Итак, по крайней мере, как я понимаю, дерево выглядит так:
Meg
/ \
Joe Stewie
/ \ / \
Brian Lois Peter Quagmire
\
Cleveland
Обход предварительного заказа, который говорит, что я правильно понял: Мэг, Джо, Брайан, Кливленд, Лоис, Стьюи, Питер, Куагмайр.
Тем не менее, он говорит, что мои обходы по порядку и после заказа неверны, и я не могу понять, почему. Я думаю, что дерево правильное, так как предзаказ сработал. Вот что у меня есть на двух других:
по порядку: Брайан, Кливленд, Джо, Лоис, Мэг, Питер, Стьюи, Куагмайр
пост-заказ: Кливленд, Брайан, Лоис, Джо, Питер, Куагмайр, Стьюи, Мэг
Любая помощь будет принята с благодарностью. Каждый раз, когда я думаю, что разобрался с обходами, что-то ставит меня в тупик.
РЕДАКТИРОВАТЬ: Мое дерево неправильно. Q стоит перед S в алфавите. Так должно быть:
Meg
/ \
Joe Stewie
/ \ /
Brian Lois Peter
\ \
Cleveland Quagmire
Правильные обходы таковы:
предзаказ: Мэг, Джо, Брайан, Кливленд, Лоис, Стьюи, Питер, Куагмайр
по порядку: Брайан, Кливленд, Джо, Лоис, Мэг, Питер, Куагмайр, Стьюи.
пост-заказ: Кливленд, Брайан, Лоис, Джо, Куагмайр, Питер, Стьюи, Мэг