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

c++ - 试图在 C++ 中将树转换为列表

我正在尝试将树转换为列表中的顺序。这是我到目前为止的代码。

注释的 list_inorder 是一种将树转换为列表的递归方式,它可以工作。另一种 list_inorder 方法(未注释的方法)是我正在研究的方法。由于某种原因,另一个 list_inorder 不起作用。我试图返回指向转换后列表中第一个节点的指针。因此,我可以遍历列表并在 convert_to_list 方法中打印出元素。

任何帮助表示赞赏。谢谢你。

0 投票
0 回答
300 浏览

c++ - 使用 InOrder 迭代器的二叉树遍历,没有堆栈

我的任务是在 C++ 中创建一个通用的二叉树,我必须使用迭代器来遍历它,而不使用 STL 容器(例如堆栈)。

这是到目前为止的所有源代码:http ://www35.zippyshare.com/v/98817061/file.html

使用递归遍历,树被完全遍历(所有值都出现在屏幕上),所以我的插入函数似乎工作正常。然而,这个迭代器似乎没有到达右侧节点(只有 1 和 2 出现,其余的没有)。任何想法为什么?

0 投票
4 回答
4709 浏览

java - 这个中序遍历算法是如何工作的?

我对递归没有太多经验,所以我很难确定这个算法是如何工作的:

我知道它会访问树中每个节点的左右子节点,但我就是不明白为什么它会起作用。

0 投票
2 回答
747 浏览

java - 为了在二叉树中递归

有人可以向我解释一下递归在顺序遍历中是如何工作的。这是我的 inOrder() 方法。

inOrder() 方法可以正确打印元素,但我不明白它是如何工作的。
当我打电话时,t.inOrder(t.root);因为 root 的值为 5 它会类似于inOrder(5); 并且有一个左节点所以if(p.left!=null){ inOrder(p.left); }

将被执行。那里的递归调用将是inOrder(4);
因为 4 的左边指向 null,然后visit(4)是执行打印值 4 的行。
但之后如何打印 5。虽然起初当方法被t.inOrder(t.root);局部变量调用时p 被赋值为 5 的 BinaryNode,现在 p 为 4。然后在打印出 4 之后,可以执行的下一行是

if(p.right!=null){ inOrder(p.right); }
但是由于 p.right 现在引用 BinaryNode 中元素 4 的 right 并且 4 的 right 为空,所以这也不会被执行。
那么递归是如何维护的呢?
它如何打印出 5 和其余节点?

0 投票
1 回答
64 浏览

c - 二叉树搜索是在骗我吗?

嘿,我正在尝试编写一个程序来获取字符串列表(这些是按顺序排列的):

然后将这些字符串存储在二叉树中,最后进行中序遍历。但是,我遇到了一个我无法弄清楚的问题。我添加节点的功能一直告诉我我已经添加了节点,但是实际上从未添加过?我的输出是这样的:

最后,这是源代码:

0 投票
2 回答
5032 浏览

algorithm - 有两个以上孩子的树的前序和有序

我们知道二叉树的给定的前序和中序遍历唯一地定义了这棵树,那么一般的树,即具有两个以上孩子的树,前序和中序遍历是否与树结构一一对应。

换句话说,给定一个通用树的元组 (preorder,inorder) 它对于通用树是唯一的,还是可以有许多树具有相同的 preorder 和 inorder 遍历元组?

0 投票
1 回答
881 浏览

data-structures - 给定前序和后序遍历时,为什么不能确定树的中序遍历?

我们都熟悉二叉树的前序、中序和后序遍历。数据结构类中的一个常见问题是:

  • 当给定中序和后序遍历时,找到二叉树的前序遍历。
  • 或者,您可以在给定中序和预序时找到后序遍历。
  • 但是,一般来说,当给定树的前序和后序遍历时,您无法确定树的中序遍历。

我想知道为什么,有没有一种从理论上解释它的好方法?

更新 1 一个答案:父母只有 1 个孩子的叶子会有问题,因为在这种情况下,这样的叶子可以是左孩子或右孩子。

0 投票
2 回答
101 浏览

c - Binary tree only displays half of content

My program is suppose to read characters from a file and display the pre-order, in-order, and post-order traversal of the content in the file. The issue is that it only displays half the content in the file. Not sure where and why it stops reading from the file?

My input file content is:

My output is:

0 投票
2 回答
245 浏览

algorithm - 前序和与中序遍历的关系

我发现如果我们有 Preorder 和 Inorder Traversal,我们就有了一棵独特的树。

我可以得出结论:

对于每个 Preorder Traversal,我们有多个 Inorder Traversal。这是对还是错的结论?每个人都会帮助我并添加一些细节。

再次感谢。

0 投票
1 回答
494 浏览

java - Java 树遍历

我正在开发一个 API,在该 API 中,我根据请求中收到的条件树生成查询。以下是树格式:

树

它应该像这样在 SQL 查询中被翻译:

或者,像这样

使用预购遍历,我能够生成查询。但是,我无法附加括号。以下是我的 inOrder 遍历代码:

谁能指导我在哪里插入括号?提前致谢。

****更新****

现在,我想从相同的结构生成 mongo 查询。我能够生成字符串但无法附加括号:我想要这样的东西:

有人可以帮忙吗?