问题标签 [inorder]
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.
inorder - 绘制前序、后序和有序树
绘制前序、后序和中序的规则是:
- 前序遍历:根、左、右
- 后序遍历:左、右、根
- 中序遍历:左根,右
例如,如果我们有这样的表达式:
ABCDEFGHIJKL,
我怎样才能为这个表达式分别绘制(预购、后购和有序)。有可能我们对每个都有不同形式的树(预购、后购和有序)。(即两种形式的预购)。如果我们同时拥有 (pre-order and and in-order) 或 (post-order and in-order),我们就可以拥有唯一的树。在预购中,第一个节点是根节点(即“A”是根节点)。在后序中,最后一个节点是根节点(即“L”是根节点)。
绘制这些树是否有任何总体公式或“规则”?我画不出来
编辑:我的意思是如何从以下遍历的每个前序、后序和中序构造树:
ABCDEFGHIJKL,
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。
我只需要绘制树的结构,而不用编程语言实现它。使这项任务变得更难的是树不是二叉树。我可以使用什么技术来建造树木?
inorder - 构造前序、后序和中序表达式的二叉树
我搜索了互联网和“you tube”,但没有找到任何好的教程。如何在“后缀”中绘制给定表达式的相应“二叉树”?
这个表达式在中缀和前缀中的外观如何?
我不知道我应该如何一步一步地做到这一点:(
18 5 1 + / 4 * 3 5 18 6 / - + -
笔记:
绘制前序、后序和中序的规则是: 1. 前序遍历:根,左,右 2. 后序遍历:左,右,根 3. 中序遍历:左根, 正确的
请问我考试需要它
java - 用 Java 实现我自己的树迭代器
我试图为树遍历实现迭代器接口。我收到以下错误。“for(Integer node : tr) 的不兼容类型”和“treeIterator.java 使用未经检查或不安全的操作。” 我无法修复此错误。有人可以指出问题所在。
PS:这是我第一次尝试实现迭代器接口。如果有任何我不遵循的标准做法,请指出。
谢谢你
c++ - 在递归代码中查找中序后继代码中的段错误
嘿伙计们,我只是在二叉搜索树上练习递归代码。我遇到了一个段错误,但我不确定问题出在哪里(可能是一些愚蠢的东西盯着我的脸)。我还有其他运行良好的功能,例如计算节点数或计算树的高度。特别是这个功能给我带来了麻烦。我正在用 C++ 编写代码。
我的想法是让函数从根开始向右走一次,然后尽可能向左走。如果我的 root->data 等于我的 temp->data (数据只是随机生成的 int),我只想让它正确运行。
php - PHP - 在嵌套数组2中查找嵌套数组1
我需要查看 Array1,从 Array2 中找到任何匹配的序列,并更新 Array1 中的相应子数组。
我以前在类似问题上得到过帮助; 在数组中按顺序查找数组
以前的解决方案效果非常好——但这次我要处理更复杂的数据,我需要更新 Haystack 数组(而不是简单地返回匹配项)。
阵列 1:干草堆
阵列 2:针
因此我应该在大海捞针中找到“aa bb cccc”(needle [0]),并将数组更新为;
我拥有的两个版本的代码是;
代码版本 1:
和代码版本 2:
但这些设计用于平面阵列;
相反,我需要他们按照顶部处理数组(嵌套,并且针正在寻找与 needle[key] 匹配到 haystack[array][v1]
尽管我已经对早期的代码进行了摆弄和迷恋,但我无法将它打造成正确的形状:(我一直在通过 foreach 循环来访问东西,并尝试使用 for() 等。
但我遇到了以下问题;1) Array2 (Needles) 很大,相同的针头多次出现?2)我只得到一个匹配项(即使 Array 1 包含与 Array 2 Needle-n 的多个匹配项 - 它只找到 a)第一个或 b)最后一个)3)无论顺序/顺序如何,它都匹配(我想我打破了代码不知何故,它会匹配“cccc bb aa”,当针中的订单不存在时(而是“aa bb cccc”)。
我现在花了 2 天的时间来处理这个问题,想知道我做错了什么。
我尝试使用这两种解决方案(foreach 和 for 方法)......但我无法让它们中的任何一个工作。
binary-tree - 此语句是否为真(用于确定一棵树是否为另一棵树的子树)
我有两个二叉树T1
和T2
,它们都是字符树,这意味着:
如果PreOrder2
是 的子串PreOrder1
,并且InOrder2
是 的子串InOrder1
,则T2
是 的子树T1
。
上述说法是否属实?
树相等的定义:如果T1
和T2
具有完全相同的数据值和分布,则T1 == T2
,否则T1 != T2
(NULL树相等)。
子树的定义:如果其中至少有一个节点,N1
则为的子树。T1
N1 == T2
T2
T1
基本上,我不是在谈论节点地址的等价性。我说的是树的数据值和分布。
== 编辑 ==
我认为这不是真的。中可能有两个子树T1
,其中一个T2
具有与 相同的 PreOrder,另一个具有与 相同的 InOrder T2
。
现在我的问题变成了:有没有一种简单的方法来确定是否T2
是T1
使用遍历的子树?
== 编辑 ==
使语句为假的典型示例:
T1:
T2:
另一个T1:
java - 二叉树的后序遍历
我正在学习编写二叉树的树遍历。到目前为止,我已经从网上的许多教程中提出了这一点。但是,当我尝试进行任何遍历时,我会陷入无限循环。我哪里错了?
谢谢!
binary-tree - 绘制给定“ATTA”的二叉树作为中序和后序遍历
我被要求绘制一个二叉搜索树,它的顺序和后序遍历都按顺序处理节点"ATTA"
。我尝试了许多不同的方法,但最终只适用于其中一种遍历方法。
c - C中二叉树中的中序树遍历
在下面的代码中,我正在使用插入函数创建一个二叉树,并尝试使用遵循中序遍历逻辑的中序函数显示插入的元素。当我运行它时,数字被插入但是当我尝试中序时函数(输入 3),程序继续下一个输入,不显示任何内容。我想可能有一个逻辑错误。请帮我清除它。提前致谢...