现实生活中如何使用 3 种类型的二叉树遍历(前序、中序、post-序)?

How are the 3 types of binary tree traversals (pre-order, in-order, post-order) used in real life?

我了解树和树遍历,但是,我很难知道在现实生活中的示例中使用的是哪种树遍历。

例如,我们是否使用预序遍历在计算机上导航文件系统? 我们通常什么时候使用其中之一?

如果您有二叉搜索树,则可以使用 in-order 遍历来按排序顺序显示数据结构中包含的元素。按排序顺序查看事物通常很有用。所以如果树有三个节点,A 在根节点,子节点 B 和 C,并且它是一个二叉搜索树,你想要:

B, A, C

如果您的文件系统包含包含文件夹和文件的文件夹,您可能会将此结构视为分层目录结构。当您执行此操作时,您实际上希望在访问列表中的文件夹之前访问其内容,因此您可以将文件夹对齐到其内容的左侧。与上面解释为目录结构的同一棵树可能应该这样看:

A
+- B
+- C

关于 post-order 遍历,没有一堆例子浮现在脑海中,但确实有一个是 reverse-polish 符号。如果您正在制作计算器并将算术表达式存储在树中,那么您可以使用该树的 post-order 遍历来获得 reverse-polish 表示法中的一系列术语并使用已知的 expression-evaluation 使用反向波兰符号的算法。因此,如果我们有 +、3 和 4 而不是 A、B 和 C,那么我们可能更愿意看到像

这样的字符串
3 4 +

算法会将其解释为“pop 3 pop 4 pop +, push 3+4”。诸如此类。