问题标签 [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.
binary-search-tree - 反向二叉搜索树中的中序后继
如果翻转 BST,我对有序的继任者/前任者有一点困惑。当 BST 被翻转/反转时,我的意思是当右子树中的所有元素都更小而左子树中的所有元素都更大时。通常右子树具有更大的价值。如果反过来呢,顺序后继者/前继者的定义是否仍然保持不变?
对于普通树,中序后继者将是右子树的最左边的孩子,不是吗?
对于翻转的 BST,如下例所示:
8的顺序后继是10吗?或者如果我们遵循中序继任者的“通常”定义,它是 6 吗?
谢谢!
c++ - 通过“inorder”和“reverse inorder”方法同时遍历二叉搜索树的多线程方法,比较元素对
在某些情况下,能够比较二叉搜索树中的最后一个元素和第一个元素,元素对方式将被证明是有用的。
例如:查找 2 个元素总和为给定数字。(最快的方法是尝试将最小和最大的数字相加,然后根据与给定数字相比得到的总和推进每一端)
^我知道这可以通过使用 2 个堆栈以迭代方式遍历树来完成。我只是在想是否有一种方法可以使用2 个线程来做这样的事情:
所以......我正在尝试做的事情在逻辑上可能吗?这是我在 stackoverflow 上的第一篇文章。我希望我的格式和事情是正确的。如果不是,请善待。=)
stack 方法至少占用O(logm + logn) 空间。线程方式实际上可以通过更简单的代码和 O(1) 空间来完成
以防万一,我想要完成的是:
2 个函数,每个都运行它自己的线程:
Fn1(比如说):一个,一个以 Inorder 方式递归的函数。
Fn2(比方说):二,一个以逆序方式递归的函数。每次任何一个函数从 BST 读取数据时,它都会将它们存储在静态变量中,并且它必须检查从 2 个函数中保存的两个元素是否可以进行比较。一个来自自身,另一个来自另一个功能。如果还有 2 个元素,则使用 requiredSUM 找到元素的总和。如果变量的总和更大,它会让另一个函数继续,直到它得到下一个(这将是第二小的元素)。这个函数一直存在,直到另一个函数得到它的新元素。进行比较。如果这次总和小于 requiredSUM,则该函数继续执行,另一个函数等待直到该函数获得下一个元素(第二小的元素)。进行比较,直到找到总和为所需目标 Sum 的 2 个元素。
这是一种算法,用于查找排序数组中总和为指定值的所有整数对。除了不是排序数组,我们现在有一个 BST。只是为了显示,我将通过以下方式解决问题的数组版本:
recursion - 有人可以解释递归如何用于中序 BST 遍历吗?
我意识到中序遍历的代码看起来像
我把所有东西都编码了,工作正常。然后我开始思考更多并且过度考虑了这个过程,现在迷失在递归的实际工作方式中。因为我认为一路离开,递归将结束,因为两个节点都是空的。
如果我一路向左,左右节点都为NULL,递归调用如何让我回到父节点继续遍历?
algorithm - 从 Just Inorder Traversal 中找到 Preoder?
我遇到了一个 4 天前的期中考试题,我无法理解!
假设当我们对树进行中序遍历时给出了答案,那么在前序遍历的情况下我们如何找到解决方案。我有以下示例: 当中序遍历树时E A C K F H D B G
;
前序遍历会返回什么?
谁能帮助我学习?
编辑:我知道答案是:FAEKCDHGB。但是这是怎么计算的?
binary-tree - 如何使用顺序遍历仅打印树中的唯一单词
这个问题基本上说明了一切,但这是我到目前为止所拥有的
}
这个想法是我先进行中序遍历并打印出所有单词以及它们的计数。但是后来我想稍后重新访问该遍历并仅打印出唯一的单词,但我不知道如何为此创建算法代码。我所知道的,如果字数是 1,那么这个词必须是唯一的,因为它只在文件中出现过一次。如果有人可以帮助我,那就太好了。
java - 二叉树 - 在中序遍历中找到位置
我有一个二叉搜索树,我必须在其中实现一个名为
问题是,我需要按顺序遍历的位置。
为了找到按顺序遍历,我有以下代码,但我不知道如何计算递归调用以获得正确的位置。
java - Java中BinaryTree的inorder方法(数组实现)
如何为我的二叉树实现编写正确的中序方法?
这是我的测试:
tree - traversal method with a return value
for trees, in traversal methods I want the values to be returned. the method i tried only returns one value.
this code works perfectly but I want the method to return the values instead
algorithm - inorder+preorder如何构造唯一二叉树?
最近,我的问题被标记为重复,就像这样,即使它们不是。所以,让我从以下开始,然后我将解释我的问题。
为什么这个问题不是重复的?
我不是在问如何在给出中序和前序遍历时创建二叉树。我要求证明,中序+前序遍历定义了一个唯一的二叉树。
现在,对于原始问题。我去面试了,面试官问了我这个问题。我被卡住了,无法继续。:|
问题: 给定二叉树的中序和前序遍历。证明给定数据只有一棵二叉树。换句话说,证明两个不同的二叉树不能有相同的中序和前序遍历。假设树中的所有元素都是唯一的(感谢@envy_intelligence 指出这个假设)。
我试图用例子说服面试官,但面试官要求的是数学/直观的证明。谁能帮我证明一下?
algorithm - 给定一个 preOrder 和 inOrder 序列,可能有多少个级别顺序 BST 序列?
当我尝试打印 BST 级别时,这个问题提示了我。
这里有一个
一个 BST 的水平顺序序列与上面pre_order
和In_order
是
[4, 2, 6, 1, 3, 5, 7, 8]
然而,对于同一个预购顺序,这个级别顺序顺序似乎是可能的。[4, 1, 5, 2, 6, 3, 7, 8]
. 我不知道怎么做。我试图弄清楚这一点。
我无法在满足所有 pre_order、In-order 和 level order 序列的纸张(绘图)中构建 BST。