遍历一棵树,前任和后继
Traversing a tree, predecessor and successor
我在树数据结构方面遇到了一些疑问。
1) 树遍历(前序、中序、后序)是否可以在所有类型的树中进行,还是只能在二叉树中进行。
2) 如果第一个点是有效的,那么我们可以简单地中序遍历一棵树并将元素存储在一个数组中。
然后通过使用该数组,我们可以找到前导和后继,作为给定元素之前和之后的元素。
1.
所有类型的树都可以遍历树(前序、中序、后序)
不仅在二叉树中。
每棵树包含 child 个节点。(二叉树 2、三叉树 3 等)。
我们需要定义我们自己的遍历树的方式。
让我们以三叉树为例。
预购:访问(root.data) - >root.left -> root.middle -> root.right
后序:root.left -> root.middle -> root.right -> 访问(root.data)
顺序 : root.left -> root.middle -> 访问(root.data) -> root.right
Preorder : 在first[之后访问所有k child个节点(从左到右) =45=]访问根节点。
Postorder : 访问所有k child个节点(从左到右)before访问根节点。
Inorder : 访问 k/2 child 个节点(从左到右)然后访问根节点访问剩余 k/2 child 个节点。
- 我们可以通过中序遍历将树存储在一个数组中。
我们可以通过中序遍历的方式从该数组中找到前驱和后继。
对于二叉树,前导=左child,后继=右child
对于三叉树,前驱=左child或中child,后继=中child或右child。 (我们必须根据我们的要求指定它)
我在树数据结构方面遇到了一些疑问。
1) 树遍历(前序、中序、后序)是否可以在所有类型的树中进行,还是只能在二叉树中进行。
2) 如果第一个点是有效的,那么我们可以简单地中序遍历一棵树并将元素存储在一个数组中。
然后通过使用该数组,我们可以找到前导和后继,作为给定元素之前和之后的元素。
1.
所有类型的树都可以遍历树(前序、中序、后序) 不仅在二叉树中。
每棵树包含 child 个节点。(二叉树 2、三叉树 3 等)。
我们需要定义我们自己的遍历树的方式。 让我们以三叉树为例。
预购:访问(root.data) - >root.left -> root.middle -> root.right
后序:root.left -> root.middle -> root.right -> 访问(root.data)
顺序 : root.left -> root.middle -> 访问(root.data) -> root.right
Preorder : 在first[之后访问所有k child个节点(从左到右) =45=]访问根节点。
Postorder : 访问所有k child个节点(从左到右)before访问根节点。
Inorder : 访问 k/2 child 个节点(从左到右)然后访问根节点访问剩余 k/2 child 个节点。
- 我们可以通过中序遍历将树存储在一个数组中。 我们可以通过中序遍历的方式从该数组中找到前驱和后继。
对于二叉树,前导=左child,后继=右child
对于三叉树,前驱=左child或中child,后继=中child或右child。 (我们必须根据我们的要求指定它)