69得票9回答
B树比AVL树或红黑树更快吗?

我知道性能从来不是非黑即白的,通常情况下某个实现在X情况下更快,在Y情况下更慢等,但总体而言,B树比AVL或RedBlack树更快吗?虽然它们比AVL树(甚至可能比RedBlack树)更复杂,但它们是否更快(它们的复杂性是否值得)? 编辑: 我还应该补充说,如果它们比等效的AVL / Red...

67得票9回答
如何计算二叉搜索树的高度?(平衡AVL树)

我正在寻找计算AVL树中节点余额的最佳方法。 我认为我已经做到了,但在进行大量插入/更新之后,我发现它根本不正确(完全错误)。 这有点像两个问题,第一个部分是如何计算子树的高度,我知道定义“节点的高度是从该节点到叶子的最长向下路径的长度。” 我理解它,但我无法实现它。 而且更让我困惑的是,在...

58得票17回答
检查二叉树是否为镜像或对称的

如何测试一棵树是否对称?因为它是一棵二叉树,所以我认为这将是某种递归定义。 正式问题如下: 如果一个二叉树的左右子树是相同的镜像,那么它就是镜像对称的。也就是说,这棵二叉树是对称的。 以下有几个例子来更好地解释它。 1 / \ 2 2 真 1 / \ 2 2 \ ...

57得票12回答
红黑树

最近我看了几本书,都提到了二叉树和二分查找。但由于我在计算机科学的学习刚刚开始,还没有上过真正专注于算法和数据结构的课程。 我已经在典型的信息源(维基百科、谷歌)搜索了相关内容,特别是红黑树的实用性和实现大多写得深奥难懂。也许对于有必要背景的人来说,这些内容很容易理解,但对我来说,读起来就像...

50得票10回答
使用常数空间和O(n)运行时间的非递归遍历二叉搜索树

这不是作业,而是面试题。 问题在于此算法应该是恒定空间的。我对如何在没有堆栈的情况下完成这个任务感到困惑,我可以发表使用堆栈的代码,但它无关紧要。 以下是我尝试过的方法:我尝试进行先序遍历并到达最左边的节点,但我卡在那里了。 我不知道如何在没有堆栈/父指针的情况下"回归"上一级。 任何帮...

48得票2回答
B树与二叉树的区别

如果我使用B树来实现内存(RAM)搜索操作,与使用二叉树相比,它是否更好,例如在缓存方面或其他影响方面? 我所知道的是 - binary search tress---O(log n) btrees ---------------O(c log n) 关于这个问题,在各种博客上都有很多讨论。

48得票13回答
二叉搜索树中的“内部节点”是什么?

我正在搜索互联网上关于"Internal Node"一词的定义。我找不到简明的定义。我查看的每一个来源都使用这个术语,但没有给出确切的定义,而它的使用也不能很好地说明内部节点实际上是什么。 以下是我主要查询的两个网站: 链接 假定内部节点是具有两个非空子树的节点,但没有说明原始树中哪些节点是内...

45得票5回答
先序遍历二叉树和深度优先搜索是否相同?

我认为Pre-order遍历和DFS在许多情况下都是相同的,因为两种遍历方式都会按深度优先的方式一直遍历到叶子节点。如果我有错误,请有人纠正一下吗? 提前感谢!

43得票15回答
如果有三分查找,为什么要使用二分查找?

最近我听说了三分查找,它将一个数组分成三部分并进行比较。这里会有两次比较,但它可以将数组缩小到 n/3 的规模。为什么人们不经常使用它呢?

42得票4回答
C++ STL中的二叉搜索树实现?

请问,C++ STL是否包含 二叉搜索树 (BST) 的实现,还是我需要自己构造BST对象? 如果STL中没有BST的实现,是否有其他可用的库? 我的目标是尽快地找到所需记录:我有一份记录列表(不应该超过几千个),并在其中进行每帧搜索(这是一个电脑游戏)。我使用无符号整数作为感兴趣记录的标...