algorithm - 写出给定一棵树 : 的前序、中序和后序遍历

标签 algorithm binary-tree

好的,鉴于这棵树,我需要为它写出前序、中序和后序遍历。

                                     9
                                  /     \
                                 5       12
                                / \     /  \
                               2   7   11   15
                              /   /   /  \    \
                             3   6   10  13    16
                                                 \
                                                  17

这是我想出来的,我的老师没有很好地复习这个,所以我不确定我是否接近正确。

       pre-order: 9 5 2 3 7 6 12 11 10 13 15 16 17
       in-order: 3 2 5 7 6 9 12 11 10 13 15 16 17
       post-order: 3 2 6 7 5 10 11 17 16 15 13 12 9

任何帮助将不胜感激

最佳答案

预序:做一次深度优先遍历,第一次遇到节点就写出来。所以这是正确的 (9 5 2 3 7 6 12 11 10 13 15 16 17)。

后序:进行深度优先遍历并在处理完所有子节点后写出节点。所以正确的顺序是 (3 2 6 7 5 10 13 11 17 16 15 12 9)。

有序:进行深度优先遍历,首先写出左子树,然后是节点本身,最后是右子树。所以正确的顺序是(3 2 5 6 7 9 10 11 13 12 15 16 17)。这里单个 child 是左还是右是有区别的,对于其他方法无关紧要。

关于algorithm - 写出给定一棵树 : 的前序、中序和后序遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43818105/

相关文章:

c - 将 C 二叉树根值保存在变量中

mysql - 从表中获取根节点、内部节点和叶节点?

algorithm - 一种将一本书分解成人物及其互动的方法?

python - 插入排序实现不正确,还是时间复杂度理解不正确?

python - 定制编号系统

c++ - 排序算法和对象指针的问题

algorithm - 创建一个算法来查找数组的重复值

c# - 按顺序打印二叉树

java - 使用递归插入二叉树

c - 访问传递给 void* 指针的结构元素