когда использовать inorder, preorder и postorder traversal

Я понимаю, что делать, как делать inorder, preorder и postorder обход в двоичном дереве поиска. Однако я смущен о приложении.

Когда вы будете использовать их? Было бы очень полезно проиллюстрировать случаи, когда каждый метод обхода имеет наибольший смысл.

Благодаря!

3
nl ja de
добавлено автор Simon Featherstone, источник

1 ответы

Перемещение по порядку просто обрабатывает элементы в определенном порядке. Если, например, у вас есть BST списка слов или имен, обход по порядку распечатывает их по порядку.

Приказ предварительного и последующего обхода чаще всего применяется к деревьям, отличным от двоичных деревьев поиска. Например, чтобы оценить выражение типа A + B * C , вы можете создать дерево следующим образом:

enter image description here

Чтобы оценить выражение, вы перемещаете дерево в постоператоре, применяя каждый оператор к значениям из каждого из его поддеревьев.

Предпросмотр обхода можно использовать примерно по той же цели, если вы хотите (например) создать вывод на языке, наподобие Lisp, поэтому выражение должно выглядеть как (add A (mul B C)) .

6
добавлено
любой шанс, что вы можете переделать/переделать изображение, которое нарушено?
добавлено автор Chris Knight, источник
спасибо за предложение, но теперь, когда я дома, я вижу изображение. Должен быть заблокирован брандмауэром моей работы (boo для ограничения доступа в Интернет!).
добавлено автор Chris Knight, источник
@ChrisKnight: Да, я не могу это сделать.
добавлено автор Jerry Coffin, источник