【发布时间】:2015-02-02 19:43:14
【问题描述】:
比方说,在父母之前按顺序和后序拜访孩子有什么意义?我了解中序、前序和后序遍历只是表示树的一种方式。我对么?
【问题讨论】:
-
您好,能否接受我的回答,谢谢。
标签: depth-first-search inorder postorder
比方说,在父母之前按顺序和后序拜访孩子有什么意义?我了解中序、前序和后序遍历只是表示树的一种方式。我对么?
【问题讨论】:
标签: depth-first-search inorder postorder
按顺序、后序和前序不是表示树的方法,而是遍历树的方法。有趣的是选择一种遍历而不是另一种遍历的原因。
前序遍历对于复制节点和边以完全复制二叉树非常有用。它们也可用于制作前缀表达式(来自表达式树。
在删除节点和值时使用后序遍历可以删除整个二叉树。同样,它们也可以生成二叉树的后缀表示。
最后,中序遍历对于二叉搜索树很有用,因为它们按顺序从底层集合返回值。
【讨论】:
Pre-order、In-order、Post-order是遍历一棵树的三种方式. 以上三种遍历都属于深度优先遍历。
以下图为例:
深度优先预购遵循节点 -> Left_Child -> Right-Child 约定。如果你在我们当前的例子中使用它,你应该得到:
A、B、D、E、C
Depth First In-Order 遍历遵循 Left-Child -> Node -> Right-Child 约定。它看起来像这样:
D、B、E、A、C
Depth First Post-Order 遍历遵循 Left-Node -> Right-Node -> Node 约定。看起来是这样的:
D、E、B、C、A
Breadth First Level-Order 遍历,是一种从根节点开始的遍历,从左到右向下遍历树的每一级读取节点。 它看起来像这样:
A、B、C、D、E
【讨论】: