【发布时间】:2009-01-28 00:56:27
【问题描述】:
我在不久前参加的关于二叉树(不是 BST)的中序遍历(他们也称之为 pancaking)的学术课程中有以下文字:
中序树遍历
在外面画一条线 树。从根的左边开始, 绕到树的外面, 到根的右边。 尽可能靠近树, 但不要穿过树。 (考虑到 树——它的分支和节点——作为 一个坚实的障碍。)的顺序 节点是这一行的顺序 从他们下面经过。如果你是 不确定你什么时候去“下面” 一个节点,记住一个节点“到 左”总是第一位的。
这是使用的示例(与下面的树略有不同)
但是,当我在 google 上进行搜索时,我得到了一个相互矛盾的定义。例如wikipedia example:
中序遍历序列:A、B、C、 D、E、F、G、H、I (leftchild,rootnode,right node)
但根据(我的理解)定义#1,这应该是
A、B、D、C、E、F、G、I、H
谁能澄清哪个定义是正确的?他们可能都描述了不同的遍历方法,但碰巧使用了相同的名称。我无法相信经过同行评审的学术文本是错误的,但无法确定。
【问题讨论】:
-
不——根据定义一,你在 G 下通过,但你从 I 到 H 并在它之下,然后在 I 之下——所以算法同意。
-
把一个简单的概念用难以理解的方式来解释,太学术了。
标签: data-structures binary-tree tree-traversal