22得票3回答
为什么递归中序遍历的空间复杂度是O(h)而不是O(n)?

我知道递归中序遍历的空间复杂度是O(h),而不是O(n),其中h是树的高度,n是树中节点的数量。为什么会这样呢?比如说,这是遍历代码:public void inorderPrint (TreeNode root) { if (root == null) { retu...

21得票2回答
构建二叉搜索树需要知道多少次遍历

我对不同网站上有关使用任一遍历(pre,post或in-order)或任意两个遍历的组合构建二叉搜索树(BST)感到非常困惑。例如,这里说,给定pre,post或level顺序遍历以及in-order遍历,可以构建BST。但是,在这里和那里,他们向我们展示如何仅从pre-order构建BST。...

19得票4回答
如何用中序遍历和前序遍历构建唯一的二叉树?

最近,我的问题被标记为重复,比如这个,即使它们并不是重复的。因此,让我从以下内容开始,然后我会解释我的问题。 为什么这个问题不是重复的? 我并不是在问如何在给定中序遍历和前序遍历的情况下创建二叉树。我正在寻求证明,即中序遍历+前序遍历定义了唯一的二叉树。 现在,来看原始问题。我去参加了一...

18得票8回答
如何使用父指针而不使用递归或堆栈对二叉搜索树进行中序遍历?

在具有父节点指针(根节点的父节点为null)的BST上执行迭代中序遍历是否可能而不使用visited标记或stack? 我查了一下谷歌,没有找到答案。问题是,在某个节点处,如何知道我刚刚到达它,而不是已经完成了它下面的所有内容?

14得票5回答
中序遍历二叉树(使用Python)

我正在尝试对一棵树执行中序遍历。代码本身感觉没问题,但它没有正常工作。我有一种感觉,这可能与if条件、python中的append工作方式或者返回值等有关。如果我使用print而不是return,这个代码可以正确运行,但我想能够使用return并仍然得到正确的答案。例如,对于树[1,None,...

13得票1回答
如何使用node.js按顺序列出目录内容?

我是一名经验丰富的程序员,最近刚刚发现了node.js。我喜欢JavaScript,因为这是我的起点(Web开发),所以能够用它编写服务器端代码真是太棒了。目前,我正在进行一个简单的练习,一个WebSocket/HTTP服务器,并且在添加目录列表函数时遇到了一个小问题:当我列出某个目录中的目录...

13得票2回答
非二叉树可以按顺序遍历吗?

我们正在处理一个最相似邻居算法。算法的一部分涉及在树上按顺序搜索。 问题是,到目前为止,我们无法使该树成为二叉树。 对于非二叉树,是否有类似于中序遍历的模拟方法?特别地,我认为有,只需从左到右遍历节点(并仅处理一次父节点即可?) 更新 每个节点都将具有n个对象的小图形。每个节点将有n个...

12得票2回答
TCP如何实现/保证有序数据传输?

我在想TCP如何实现有序传递。 假设这是事件列表: 发送packet1,接收到ack。 发送packet2,未接收到ack。 发送packet3。 发送packet4。 接收到ack4。 接收到ack3。 接收到ack2。 你能描述一下这些事件的顺序吗?

9得票2回答
如何在翻译表达式树时推断括号的使用?

我正在翻译一个表达式树,使其类似于中缀表示法; 我不会评估树或执行其操作。该树包含逻辑和关系运算,并且我希望在翻译过程中智能地发出括号。 例如,考虑以下人为构造的表达式: a < x & (a < y | a == c) & a != d 如果我按照中序遍历...

7得票4回答
这个中序遍历算法是如何工作的?

我在递归方面没有很多经验,所以很难确定这个算法的工作原理: public static void inorder(Node<?> n) { if (n != null) { inorder(n.getLeft()); System.out.print(n....