【发布时间】:2016-10-06 16:04:34
【问题描述】:
我正在尝试了解 Euler Tour 算法以及为什么它在树遍历中很受欢迎。但是,我看不出 Euler Tour 和 Pre-order 遍历树之间的区别。
假设你有树:
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 以及为什么将它用于其他遍历,那将不胜感激。谢谢。
【问题讨论】:
标签: data-structures tree tree-traversal graph-traversal preorder