Я пытаюсь узнать об алгоритме Euler Tour и почему он популярен для обхода дерева. Однако я не вижу разницы между Эйлеровым туром и предварительным обходом дерева.
Допустим, у вас есть дерево:
A
/ \
B E
/ \ \
C D F
Если бы вы выполнили алгоритм тура Эйлера, это было бы:
A -> B -> C -> B -> D -> B -> A -> E -> F -> E -> A
Но какова цель этого? Просто похоже на ту же версию рекурсивного предзаказа:
A -> B -> C -> D -> E -> F
Очевидно, что в Euler Tour у вас есть значение каждого узла по крайней мере дважды в пути, но это только из-за рекурсивного характера алгоритма, когда вы его программируете. Если бы вы хотели, вы могли бы сделать те же расчеты, которые вы делали с Euler Tour... с предварительным заказом, верно?
Если бы кто-нибудь мог помочь объяснить Euler Tour и почему он используется по сравнению с другими обходами, это было бы очень признательно. Спасибо.