遍历树,前任和后继

时间:2018-11-14 09:32:07

标签: data-structures tree-traversal

我在树数据结构中面临着一些疑问。

1)是否可以在所有类型的树或仅对二叉树中进行树遍历(预顺序,有序,后顺序)。

2)如果第一个点是有效的,那么我们是否可以简单地Inorder遍历一棵树并将元素存储在数组中。

然后使用该数组,我们可以找到前任和后继,作为在给定元素之前和之后的元素。

1 个答案:

答案 0 :(得分:0)

1。

在所有类型的树中都可以遍历树(预顺序,顺序,后顺序)    不仅在二叉树中。

每棵树都包含子节点。(二叉树2,三叉树3等)。

我们需要定义自己的遍历树的方式。 让我们以三叉树为例。

预购:访问(root.data)-> root.left-> root.middle-> root.right

邮购:root.left-> root.middle-> root.right-> visit(root.data)

顺序:root.left-> root.middle-> visit(root.data)-> root.right

预购:先首先访问根节点,然后访问所有 k 个子节点(从左到右)。

后继订单:在访问根节点之前访问所有 k 个子节点(从左到右)。

顺序:访问 k / 2 个子节点(从左到右)并访问根节点,然后访问其余的 k / 2 个子节点

  1. 我们可以通过顺序遍历将树存储在数组中。 我们可以通过有序遍历的方式从该数组中找到前任和后继。

对于二叉树,前任=左孩子,后继=右孩子

对于三叉树,前任=左孩子或中间孩子,后继=中间孩子或右孩子。 (我们必须根据我们的要求进行指定)