9得票2回答
解释递归在用于确定二叉树深度的算法中是如何工作的?

我在JavaScript中的数据结构方面还很新,正在尝试学习二叉搜索树。我按照一篇博客文章的步骤进行操作,并成功解决了查找BST最大深度的问题,但是我不清楚递归是如何运作的,以及如何在每个深度级别上每次添加+1。有没有什么好方法来理解这个问题?基本上,每当节点值不为空时,1就会被添加到最终将被...

10得票6回答
计算二叉搜索树中左节点的数量

给定一棵二叉搜索树,需要找到左子树节点的数量。 例如: +---+ | 3 | +---+ / \ +---+ +---+ | 5 | | 2 | +---+ ...

20得票5回答
如何在二叉树中获取从根节点到给定节点的路径?

我正在尝试找出如何从根节点到二叉树上给定节点的路径。 这不是一个二叉搜索树。 每个非叶节点只有两个指向它们孩子的指针。 中序遍历、前序遍历、后序遍历都行不通。 我尝试使用前序遍历,但无法找出方法。例如,我们有一个二叉树: 它不是二叉搜索树。我们使用节点的排序顺序来使其更容易找到路径。 ...

18得票9回答
将二叉树转换为链表,广度优先,常数空间/破坏性。

这不是作业,我也不需要回答它,但现在我变得着迷了 :) 问题如下: 设计一个算法,以广度优先的方式,将二叉树转换成链表,且该操作是破坏性的。 这个问题还比较简单,只需构建一个队列,然后执行相应操作即可。 这只是预热而已,现在要求使用恒定的存储空间来实现该算法(如果可以用递归解决,则为对数...

395得票19回答
二叉树有哪些应用?

我想知道二叉树的具体应用是什么。你能举几个实际的例子吗?

14得票3回答
C语言中树数据结构教程

有没有人能够给我指一些使用C语言的树数据结构教程?我尝试了谷歌搜索,但大多数实现都是针对C++或Java。如果有人能够指向一些使用C的在线教程,那就太好了。 谢谢。

9得票4回答
二叉树是否包含另一个树?

大家好,今天我在面试中被问到了这个问题: “判断一个二叉树是否包含在另一个二叉树中(包含意味着节点的结构和值都相同)” 我想到了以下方法: 将较大的树展平为: {{{-}a{-}}b{{-}c{-}}}d{{{-}e{{-}f{-}}}g{{{-}h{-}}i{{-}j{-}}}} ...

8得票1回答
保存二叉树到文件

我有一棵非平衡(不是二分搜索)的二叉树,需要将其编码(以后会解码)为文本文件。如何高效地完成? 我找到了这个链接,它讨论了类似(相同的)问题,但对我来说并不明显。

9得票3回答
懒惰删除对二叉树或链表有什么优缺点?

最近,我在一门数据结构课程中被问到了一个问题:如何对数组、链表或二叉树实现惰性删除(即首先标记需要删除的项目,然后在稍后的某个时间删除所有标记的项目),这样做有什么优缺点。以下是我的回答: 对于数组来说,这种方式会有帮助,因为每次删除索引时都需要移动数组,使用惰性删除可以节省这些时间。但是...

15得票5回答
在二叉树中对元素进行排序

这是我最近在一次面试中被问到的问题。给定一个二叉树,条件是每个左子节点比根节点小1,每个右子节点比根节点大1。以下是一个示例树: 在O(1)和O(n)时间复杂度内进行排序。 以下是我提出的方法: 使用计数来维护每个元素的数量,然后在整个遍历完成后返回,时间复杂度为O(n),空间复...