问题标签 [preorder]

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 回答
664 浏览

tree - - 二叉树拼图 - 从这些遍历中绘制树:

订购:SAEUYQRPDFKLM

预购:FASQYEUPRDKLM

这是我到现在才想到的。

我很困惑如何处理中间部分。似乎没有任何组合有效,帮助?有人有窍门吗?我该如何处理?我已经为此打了2个小时。

我必须恢复这棵树。

0 投票
3 回答
2165 浏览

c++ - 获取“节点”类型的临时对象的地址

t.PreorderTraversal(t, &t.getRoot());错误是获取“节点”类型的临时对象的地址。Root 是一个 Node 类对象。该函数PreoderTraversal将Node对象作为一个点,所以我给出了Node对象的地址并发生了错误。这不是正确的做法吗?

0 投票
0 回答
173 浏览

stack - BST preorder 到 postorder 使用没有递归的堆栈

BST给定预购,如何在不递归的情况下使用堆栈获取后购?首选Java!谢谢!

以下是我的答案,但未能通过 2 个隐藏的测试用例......有人可以帮忙吗?谢谢!

0 投票
3 回答
569 浏览

recursion - 难以理解树遍历递归函数

我在理解前序、中序和后序树遍历中涉及的递归函数时遇到了一些麻烦。我对递归有一些了解(但不可否认,这不是我的强项)。所有这些似乎都调用了自己两次,首先是用根的左孩子打电话,然后是用右孩子打电话。但这到底是怎么可能的呢?用左孩子调用 preOrder 函数不会将控制流返回到顶部,并且永远不会执行下一个调用吗?

0 投票
1 回答
710 浏览

tree - 从列表构建二叉树(预购)

几天前我遇到了一个有趣的问题:是否有一个优雅的函数式编程解决方案可以从列表中构建(节点标记的)二叉树?

结果树应该是左平衡的,即树中的每一级节点都应该被完全填充,或者在最低的节点的情况下,从左到右填充。此外,树的级别顺序遍历(即从上到下,从左到右)应该给出原始列表。

示例:列表 1,2,3,4,5 应导致

显而易见的解决方案是将列表转换为数组,将第零个值分配给根,然后递归地,对于一个节点n,给孩子值2n+12n+2

但我想知道:是否有一种不需要辅助数组的更“功能性”的方式?

0 投票
2 回答
73 浏览

binary-search-tree - BST 上的预购和“tree_insert”

如果我有一个 BST(称之为 - T)并在其上运行 PRE-ORDER,我如何显示/证明在我从预购中获得的序列上运行函数“tree_insert”,我得到完全相同的树- T(我开始)回来了?

谢谢,

0 投票
2 回答
2471 浏览

binary-tree - 查找仅给定中序遍历的二叉树

我得到了一个中序遍历,需要找到一棵二叉树。我提到了我的网站,他们中的大多数人说这是不可能的。但是,我认为非唯一二叉树是可能的。我可以使用刚刚给定的中序遍历找到二叉树吗?如果没有,我可以从给定的中序遍历中找到相应的前序遍历吗?

我试图通过选择 in-order 的中心节点作为根来将 in-order 转换为 pre-order,但我不确定它是否正确。请指导我。

谢谢你。

0 投票
1 回答
110 浏览

algorithm - 来自指定不存在子项的前序遍历的二叉树

我有一个由前序遍历表示的二叉树,它看起来像这样:{1 4 6 10 0 0 0 7 0 8 0 0 2 5 0 0 3 9 0 0 0 },其中 0 表示不存在元素的子元素。

如何从这些数据构造原始二叉树?我试图解决递归问题,但我还没有意识到如何处理节点的右子节点,因为我无法计算它们在数组中的位置,除非它们有一个叶子作为父节点(叶子有它后面的两个零,表示它没有孩子)。

我觉得解决方案必须非常简单,但仍然看不到它。

0 投票
2 回答
194 浏览

algorithm - 如何删除具有单个子节点的树节点的子节点

我有一个用于树的前序遍历的数组(节点值是深度值)。我想做的就是通过删除只有一个孩子的内部节点的孩子来最小化树。

作为示例(最大深度 = 3 的树) 问题在此处可视化

输入数组:[0, 1, 2, 3, 3, 1, 2, 3]
输出数组: [0, 1, 2, 2, 1]

算法应该如何?

0 投票
1 回答
22 浏览

binary-search-tree - BST 建设的先行者

我正在尝试从一组预购遍历中创建一个 BST。我编写了以下代码,但无法弄清楚我在哪里犯了错误。以下代码返回值为 null 的节点。我正在使用以下方法:

10 8 4 5 14 12
我将对其进行分区(在删除凝视元素之后):8 4 5 和 14 12,(递归)。