问题标签 [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.

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 投票
4 回答
8250 浏览

java - 用 Java 实现我自己的树迭代器

我试图为树遍历实现迭代器接口。我收到以下错误。“for(Integer node : tr) 的不兼容类型”和“treeIterator.java 使用未经检查或不安全的操作。” 我无法修复此错误。有人可以指出问题所在。

PS:这是我第一次尝试实现迭代器接口。如果有任何我不遵循的标准做法,请指出。

谢谢你

0 投票
2 回答
298 浏览

c++ - 在递归代码中查找中序后继代码中的段错误

嘿伙计们,我只是在二叉搜索树上练习递归代码。我遇到了一个段错误,但我不确定问题出在哪里(可能是一些愚蠢的东西盯着我的脸)。我还有其他运行良好的功能,例如计算节点数或计算树的高度。特别是这个功能给我带来了麻烦。我正在用 C++ 编写代码。

我的想法是让函数从根开始向右走一次,然后尽可能向左走。如果我的 root->data 等于我的 temp->data (数据只是随机生成的 int),我只想让它正确运行。

0 投票
1 回答
115 浏览

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 方法)......但我无法让它们中的任何一个工作。

0 投票
1 回答
87 浏览

binary-tree - 此语句是否为真(用于确定一棵树是否为另一棵树的子树)

我有两个二叉树T1T2,它们都是字符树,这意味着:

如果PreOrder2是 的子串PreOrder1,并且InOrder2是 的子串InOrder1,则T2是 的子树T1

上述说法是否属实?

树相等的定义:如果T1T2具有完全相同的数据值和分布,则T1 == T2,否则T1 != T2(NULL树相等)。

子树的定义:如果其中至少有一个节点,N1则为的子树。T1N1 == T2T2T1

基本上,我不是在谈论节点地址的等价性。我说的是树的数据值和分布。

== 编辑 ==

我认为这不是真的。中可能有两个子树T1,其中一个T2具有与 相同的 PreOrder,另一个具有与 相同的 InOrder T2

现在我的问题变成了:有没有一种简单的方法来确定是否T2T1使用遍历的子树?

== 编辑 ==

使语句为假的典型示例:

T1:

T2:

另一个T1:

0 投票
1 回答
2146 浏览

java - 二叉树的后序遍历

我正在学习编写二叉树的树遍历。到目前为止,我已经从网上的许多教程中提出了这一点。但是,当我尝试进行任何遍历时,我会陷入无限循环。我哪里错了?

谢谢!

0 投票
1 回答
765 浏览

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

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

0 投票
3 回答
1624 浏览

c - C中二叉树中的中序树遍历

在下面的代码中,我正在使用插入函数创建一个二叉树,并尝试使用遵循中序遍历逻辑的中序函数显示插入的元素。当我运行它时,数字被插入但是当我尝试中序时函数(输入 3),程序继续下一个输入,不显示任何内容。我想可能有一个逻辑错误。请帮我清除它。提前致谢...