我在树数据结构中面临着一些疑问。
1)是否可以在所有类型的树或仅对二叉树中进行树遍历(预顺序,有序,后顺序)。
2)如果第一个点是有效的,那么我们是否可以简单地Inorder遍历一棵树并将元素存储在数组中。
然后使用该数组,我们可以找到前任和后继,作为在给定元素之前和之后的元素。
答案 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 个子节点
对于二叉树,前任=左孩子,后继=右孩子
对于三叉树,前任=左孩子或中间孩子,后继=中间孩子或右孩子。 (我们必须根据我们的要求进行指定)