问题标签 [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.
python - python从递归方法返回一个列表
我使用本书中描述的二叉树 用算法和数据结构解决问题
已经有如下定义的前序遍历方法。
我只想添加访问的节点列表的返回值。所以我可以做类似的事情
我无法从递归方法返回列表。递归一到达“返回”就停止,我尝试过使用变体
或者
有任何想法吗?
c# - c#中XML前序和后序遍历中的所有元素顺序
我需要一个函数来返回 C# 中所有元素的前序和后序,它返回所有元素的 (XElement, Preorder, Postorder) 列表。我怎样才能做到这一点?
例如,使用此 XML:
我需要这个答案:
我已经编写了这个类,但它在大型 XML 文件中运行缓慢,因为对于每个元素,它都会处理所有节点!
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。
algorithm - 将排序的链表转换为平衡的二叉树不能正确返回?
以下是我为转换linkedList
为Balanced BinarySearch Tree
. 我明白BST
了,但它不平衡。为什么会这样?
这是主要方法:
这是我得到的输出(为便于阅读而格式化):
级别顺序和 preOrder 不匹配构建唯一树。这里有什么提示吗?
java - java中的线程树前序遍历
我正在尝试为java中二进制线程树的前序遍历编写代码。我编写了以下代码,它适用于一些示例,但我担心我忽略了一些边缘场景。
更多信息 一个节点有两个引用left和right分别指向节点的左右子节点。一个名为successor的布尔字段根据中序遍历判断右指针是指向子还是后继(如果successor==false:右指向子,否则指向中序遍历后继)
如果有人能在这里指出我的逻辑中的缺陷,将不胜感激......
任何帮助,将不胜感激...:)
java - 有没有java解决方案可以缩短二叉树前序遍历的时间?
当我第一次解决二叉树后序遍历的问题时,我只使用一个堆栈来存储节点,并使用一个列表作为结果。所以时间复杂度显然是N^2。但是如果使用 2 个堆栈,时间复杂度可以简化为 N。
至于前序遍历,我认为使用一个堆栈就足够了。但我的解决方案运行时间仍然停留在中级水平。
那么有没有什么办法可以改善呢?下面是我的代码:
谢谢!
python - 在 python 中返回树的预排序列表
我是 python 新手,正在尝试编写一个函数,该函数将递归返回树的预排序列表。我可以得到它来获取预购列表,但是,它带有大量来自与基本案例的递归交互的不需要的空列表。
代码是:
如何获得仅包含每个节点的值的列表的输出(没有空列表等)?
非常感谢,
c - 在 c 中按字典顺序打印 trie
所以我正在实现一个尝试将单词存储在字典文件中。我已经实现了插入操作;现在我正在尝试按字典顺序打印。我快得到它了,但我有一个小问题,我不知道如何解决。我还试图记住我的程序的速度,这就是为什么我选择了数组或链表的 trie。这是单个节点的样子:
“end”表示单词的完成(例如,单词 book 中字母 'k' 处的 end == 1;这可以防止在检查单词是否已实际插入树中时产生混淆)。
这是方法:
我插入的词是:boo、book、booking、john、tex、text。它们应该按该顺序打印并分开行。我的输出看起来像:
我知道这可能与我的“保持”数组有关,该数组存储单词的前缀,因此它们不会丢失。我需要在某处将索引设置回零以指示前缀及其所有相关单词(嘘,书,预订是一个很好的例子)的完成,但没有成功。任何帮助将不胜感激,我很乐意进一步澄清我的思考过程。
java - 我可以将 Collections.sort 与准订单一起使用吗?
全准序(也称为全预序)是一种较弱的排序关系,允许两个不同的元素被认为是“相同大小”。例如,所有字符串的集合是按长度准排序的,因为两个不同的字符串可以具有相同的长度。
现在假设我们有一个字符串列表,我们想按长度排序(最短的优先)。如果两个字符串的长度相同,我们不关心哪个先出现。乍一看,这样写似乎有道理
不幸的是,这是非法的。Comparator 接口的 Javadoc 明确要求比较必须实现总排序。这是违反的,因为 "a".length() - "b".length() 等于 0,但 "a".equals("b") 是假的。
那么,我们应该如何干净地做到这一点呢?干净地说,我的意思是不引入虚假比较,例如通过哈希码或自然排序。