问题标签 [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 投票
1 回答
273 浏览

binary-tree - 通过后序遍历结果恢复一棵二叉树

我可以仅从排序的数组中恢复整个二叉树(count(vertices)= 2^n-1),就好像我进行了后序遍历一样?

我建议的算法很简单,只是为了进行后序遍历:

  1. 向左走
  2. 向右走
  3. current_vertex = 数组[i++]; // 初始化 i = 0

那应该做的工作,不是吗?

0 投票
2 回答
170 浏览

c - 尝试在 c 中创建前一棵树的前序遍历时,BST 节点未保存

我试图查看树 A 是否是树 B 的前序遍历,为此,我创建了两棵树,它们在遍历期间应该保存值。但是,经过数小时的调试后,我发现树的值始终为 0。我对为什么树的值为 0 感到困惑。我已经完成了大量的打印语句(其中一些我留在了发布的代码中下面),我似乎无法确定为什么会发生这种情况。有人可以将我推向正确的方向吗?我想也许该函数在退出时正在删除变量,为了解决问题,我让 preorder 函数返回树(如下所示),但是,树的输出始终为 0。

代码:

测试用例:

0 投票
1 回答
77 浏览

java - 通用 BinarySearchTree (Java) 中的 PostOrder 输出

我在编写一些编码作业时遇到了一些麻烦。我应该编写一个通用二进制搜索树实用程序,包括一个返回树的 postOrder 遍历的 ArrayList 的方法。我的代码可以编译,但它会为除空树之外的所有树抛出 NullPointerException。我的错在哪里?

BinarySearchTree 类是:

感谢您的帮助

编辑:我正在使用字符串测试我的代码,但由于使用了泛型类型,因此希望这无关紧要。

0 投票
0 回答
122 浏览

binary-tree - 基于二叉树中的前、后和中序号的节点深度

我有一个二叉树,其中每个节点都有一个数字,用于存储该节点进入哪个位置以进行 pre、post 和 in order 遍历。

我在谷歌图片上找到的这张图片说明了我的意思:

https://i.stack.imgur.com/c6phA.gif

我无法弄清楚的问题是在恒定时间内根据节点的前、后和顺序号确定节点的深度(距根的距离)。

任何有关此问题的帮助或想法将不胜感激。

谢谢。

0 投票
1 回答
1753 浏览

algorithm - 在不构造二叉树的情况下进行后序到前序的转换

我得到了postorder和inorder。我的任务是打印预购,但我无法构造二叉树。

示例:在:POSTORDER 4 2 7 5 9 8 6 3 1 INORDER 4 2 1 5 7 3 6 8 9

输出:1 2 4 3 5 7 6 8 9

谁能帮我解决这个问题?

0 投票
1 回答
50 浏览

java - 谁能告诉我为什么在我的 evaulateExpression 中使用 pop() 不起作用?

只担心在测试类中完成第一个测试,因为树的根是运算符“+”,它的操作数/“子”是 3 和 4。由于根是“+”,我想弹出左边child 和 right child 并将节点推送到堆栈。试图理解为什么我不能使用 Stack 类中的 pop() 方法。

节点类

ExpressionTree 类导入 java.util.Stack;

测试班

0 投票
0 回答
245 浏览

python - 从中序和后序序列重建二叉树

我正在尝试使用例如输入的中序和后序序列重新创建二叉树。inorder: abcdefghijklmnpostorder:badfgecjimlnkh输出

[h, [c, [a, None, None]], [e, [d, None, None], [g, [f, None, None], None]]], [k, [I, None, [j, None, None]], [n, [l, None, [m, None, None]], None]]]

我在这里创建了一个二叉树类https://pastebin.com/ANbVp135但我不确定如何创建一个程序,该程序将从后序和中序遍历输入重新创建一个树,或者是否有一个实现已经存在。

没有其他以前的问题在后序中讨论,使这个问题独一无二

0 投票
1 回答
1304 浏览

binary-tree - 二叉树中不同遍历顺序的用例

二叉树的遍历有前序、中序和后序遍历,但不管是什么顺序,它只是遍历树找到匹配的路径。有没有我必须使用任何订单的用例?或者它们只是不同的方式,但在实际使用方面没有区别?谢谢。

0 投票
1 回答
1561 浏览

java - 将整数数组转换为具有给定顺序的树

我目前正在将整数数组转换为具有给定顺序的树(可能是 2、3、4、5,...)。到目前为止,我只设法让它为 2 阶树工作,我正在努力实现更高阶的代码。

它的工作原理是,我们得到一组数字(例如 1 2 3 4 5 6 7 8 2),最后一个表示树的顺序。在这种情况下,2,导致这棵树:

然后,我们必须根据提供的数字对生成的构建树进行预排序和排序后打印。因此,对于我得到的预购印刷品1 2 4 8 5 3 6 7和我得到的购印刷品8 4 5 2 6 7 3 1,这两个都是正确的答案。

我用于构建树的代码是:

实际的问题是如何在 createNode 函数中获取正确的索引,以便节点 t 的子节点实际上是正确的。因此,例如,如果输入为 1 2 3 4 3.. 表示树的顺序为 3,因此根为 1,并且有子节点 2、3 和 4。它们位于索引 1、2 和 3 上。

这是 postorder 和 preorder 打印的主要功能,让您了解稍后在主程序中应该如何工作。

0 投票
1 回答
510 浏览

algorithm - 这个后序森林遍历正确吗?

我在理解如何遍历森林后序时遇到问题。它的定义是:(来源:Rohit Khurana 使用 C 的数据结构,第 330 页)

  1. 以树后序遍历第一棵树的子树。

  2. 以树后序遍历 F 的剩余树。

  3. 访问 F 的第一棵树的根节点。

这里是森林: F森林

而书中提到的它的后序遍历是:

CFEDBQPZYXA

但我认为 P 是在错误的地方,它的正确答案是:

CFEDBQZYXPA

我想知道我的答案是否正确,或者书上的答案是否正确,为什么它是正确的?

谢谢,