问题标签 [postorder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
614 浏览

c++ - 仅给定一次遍历时找到二叉树的其他两次遍历

我知道当给定二叉树的中序和前序遍历作为字符串时,您可以重建二叉树,但是仅在给定中序遍历的情况下,是否可以找到后序和/或前序遍历?

0 投票
1 回答
14051 浏览

c - 二叉树的后序/前序遍历

我有一个如下所示的预购遍历函数:

这实际上是可行的,但我认为使它成为邮政订单就像这样简单

但不幸的是,它的效果并不好。我想知道如何解决这个问题,也许我做错了一些简单的事情。或者它可能是完全错误的。

0 投票
1 回答
1858 浏览

java - 二叉树的后序遍历不一致地跳转到同级或父级

在二叉树中输入以下值({18, 26, 52, 78, 45, 16, 67, 58, 73, 11})时,您会收到此树:

二叉树图像

PreOrder 和 InOrder 遍历都像我期望的那样工作。然而,当谈到 PostOrder (PO) 时,我收到的东西与我想象的不同。

据我了解,PO首先搜索左子树,然后搜索右子树,最后搜索节点(以根节点结尾)。

当通过这棵树在 PO 中遍历时,您最终会得到以下结果:{11, 16, 45, 58, 73, 67, 78, 52, 26, 18}。当写出这个结果背后的逻辑时,你会得到以下结果:从根开始,跟随完整的左,你最终在 11 这是你的第一个节点。之后,您上一层并获取其父级 (16)。你继续这样做直到你到达根(它不被包括在内,因为它不是一个leftChild)。一旦你通过了这个初始的左子树,你在右边向下一层并检查那里的 leftChilds。如果没有,你就往下一层,也就是我们找到 45 的地方。

此时我们有一个 {11, 16, 45} 的列表。我们继续这个并最终得到 58,这是我们在结果中的下一个值。这就是我困惑的地方:我们得到的下一个值是 73,与预期的 67 相反。为什么当找到另一个 leftChild(它的父级)时它会跳到 73?

以下代码负责遍历 PostOrder 中的树:

我猜这是因为值 73 的节点在 parentNode 之前处理(左右优先级),但为什么 45-52-78 三角形中不是这种情况呢?

0 投票
2 回答
8489 浏览

graph-theory - 前序遍历是否可能与后序遍历的顺序相同?

如果 T 是具有多个节点的有序树。T 的前序遍历是否可能与 T 的后序遍历以相同的顺序访问节点?如果“是”,请您举个例子。如果“否”,您能否解释为什么它不会发生?

0 投票
0 回答
773 浏览

inorder - 绘制前序、后序和有序树

绘制前序、后序和中序的规则是:

  1. 前序遍历:根、左、右
  2. 后序遍历:左、右、根
  3. 中序遍历:左根,右

例如,如果我们有这样的表达式:

ABCDEFGHIJKL,

我怎样才能为这个表达式分别绘制(预购、后购和有序)。有可能我们对每个都有不同形式的树(预购、后购和有序)。(即两种形式的预购)。如果我们同时拥有 (pre-order and and in-order) 或 (post-order and in-order),我们就可以拥有唯一的树。在预购中,第一个节点是根节点(即“A”是根节点)。在后序中,最后一个节点是根节点(即“L”是根节点)。

绘制这些树是否有任何总体公式或“规则”?我画不出来

编辑:我的意思是如何从以下遍历的每个前序、后序和中序构造树:

ABCDEFGHIJKL,

0 投票
1 回答
1316 浏览

algorithm - 如何基于 preorder&inorder 或 postorder&inorder 遍历构造非二叉树?

我的数据结构和算法课的两个练习听起来像这样

构造前序遍历为:1、2、5、3、6、10、7、11、12、4、8、9,inode遍历为5、2、1、10、6、3、11的树, 7、12、8、4、9。

构造后序遍历为:5, 2, 10, 6, 11, 12, 7, 3, 8, 9, 4, 1,inode遍历为5, 2, 1, 10, 6, 3, 11的树, 7、12、8、4、9。

我只需要绘制树的结构,而不用编程语言实现它。使这项任务变得更难的是树不是二叉树。我可以使用什么技术来建造树木?

0 投票
1 回答
2219 浏览

inorder - 构造前序、后序和中序表达式的二叉树

我搜索了互联网和“you tube”,但没有找到任何好的教程。如何在“后缀”中绘制给定表达式的相应“二叉树”?

这个表达式在中缀和前缀中的外观如何?

我不知道我应该如何一步一步地做到这一点:(

18 5 1 + / 4 * 3 5 18 6 / - + -

笔记:

绘制前序、后序和中序的规则是: 1. 前序遍历:根,左,右 2. 后序遍历:左,右,根 3. 中序遍历:左根, 正确的

请问我考试需要它

0 投票
1 回答
1282 浏览

search - BST 的最差时间复杂度(后序遍历)

N考虑在节点的二叉搜索树上进行后序遍历的时间复杂度。我知道O(N)在一般情况下需要访问所有节点,但是在最坏的情况下,当 BST 是一个列表时,复杂性是多少?我认为它需要O(N^2),因为它会遍历N节点到达终点,然后N节点回到起点。这意味着N*N = N^2,所以我认为它是O(N^2)。这样对吗?

0 投票
1 回答
404 浏览

java - 二叉树 - 后序

下面的方法是二叉树的后序遍历方法。我有一个看起来像这样的二叉树:

使用这些值,我预计输出为 8、4、18、17,因为 4 是 18 的根,而 post order 意味着最后打印根;但是,我得到了 4、8、18、17 的输出。感谢您提出任何建议。

0 投票
1 回答
765 浏览

binary-tree - 绘制给定“ATTA”的二叉树作为中序和后序遍历

我被要求绘制一个二叉搜索树,它的顺序和后序遍历都按顺序处理节点"ATTA"。我尝试了许多不同的方法,但最终只适用于其中一种遍历方法。