问题标签 [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.
c++ - 获取“节点”类型的临时对象的地址
t.PreorderTraversal(t, &t.getRoot());
错误是获取“节点”类型的临时对象的地址。Root 是一个 Node 类对象。该函数PreoderTraversal
将Node对象作为一个点,所以我给出了Node对象的地址并发生了错误。这不是正确的做法吗?
stack - BST preorder 到 postorder 使用没有递归的堆栈
BST给定预购,如何在不递归的情况下使用堆栈获取后购?首选Java!谢谢!
以下是我的答案,但未能通过 2 个隐藏的测试用例......有人可以帮忙吗?谢谢!
recursion - 难以理解树遍历递归函数
我在理解前序、中序和后序树遍历中涉及的递归函数时遇到了一些麻烦。我对递归有一些了解(但不可否认,这不是我的强项)。所有这些似乎都调用了自己两次,首先是用根的左孩子打电话,然后是用右孩子打电话。但这到底是怎么可能的呢?用左孩子调用 preOrder 函数不会将控制流返回到顶部,并且永远不会执行下一个调用吗?
tree - 从列表构建二叉树(预购)
几天前我遇到了一个有趣的问题:是否有一个优雅的函数式编程解决方案可以从列表中构建(节点标记的)二叉树?
结果树应该是左平衡的,即树中的每一级节点都应该被完全填充,或者在最低的节点的情况下,从左到右填充。此外,树的级别顺序遍历(即从上到下,从左到右)应该给出原始列表。
示例:列表 1,2,3,4,5 应导致
显而易见的解决方案是将列表转换为数组,将第零个值分配给根,然后递归地,对于一个节点n
,给孩子值2n+1
和2n+2
。
但我想知道:是否有一种不需要辅助数组的更“功能性”的方式?
binary-search-tree - BST 上的预购和“tree_insert”
如果我有一个 BST(称之为 - T)并在其上运行 PRE-ORDER,我如何显示/证明在我从预购中获得的序列上运行函数“tree_insert”,我得到完全相同的树- T(我开始)回来了?
谢谢,
binary-tree - 查找仅给定中序遍历的二叉树
我得到了一个中序遍历,需要找到一棵二叉树。我提到了我的网站,他们中的大多数人说这是不可能的。但是,我认为非唯一二叉树是可能的。我可以使用刚刚给定的中序遍历找到二叉树吗?如果没有,我可以从给定的中序遍历中找到相应的前序遍历吗?
我试图通过选择 in-order 的中心节点作为根来将 in-order 转换为 pre-order,但我不确定它是否正确。请指导我。
谢谢你。
algorithm - 来自指定不存在子项的前序遍历的二叉树
我有一个由前序遍历表示的二叉树,它看起来像这样:{1 4 6 10 0 0 0 7 0 8 0 0 2 5 0 0 3 9 0 0 0 }
,其中 0 表示不存在元素的子元素。
如何从这些数据构造原始二叉树?我试图解决递归问题,但我还没有意识到如何处理节点的右子节点,因为我无法计算它们在数组中的位置,除非它们有一个叶子作为父节点(叶子有它后面的两个零,表示它没有孩子)。
我觉得解决方案必须非常简单,但仍然看不到它。
algorithm - 如何删除具有单个子节点的树节点的子节点
我有一个用于树的前序遍历的数组(节点值是深度值)。我想做的就是通过删除只有一个孩子的内部节点的孩子来最小化树。
作为示例(最大深度 = 3 的树)
问题在此处可视化
输入数组:[0, 1, 2, 3, 3, 1, 2, 3]
输出数组: [0, 1, 2, 2, 1]
算法应该如何?
binary-search-tree - BST 建设的先行者
我正在尝试从一组预购遍历中创建一个 BST。我编写了以下代码,但无法弄清楚我在哪里犯了错误。以下代码返回值为 null 的节点。我正在使用以下方法:
10 8 4 5 14 12
我将对其进行分区(在删除凝视元素之后):8 4 5 和 14 12,(递归)。