57得票12回答
红黑树

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

8得票2回答
插入后的红黑树结果是否唯一?

假设我有一棵二叉搜索树,最初满足所有红黑树条件,并包含某个集合S中的每个整数s的一个节点。接下来,我想要一个新的节点;比如说a(它不在S中)。 在重新平衡后,这种添加的结果是唯一的吗? 换句话说:插入一个节点后,是否只有一种方法来重新平衡红黑树? 我认为它们不是唯一的,尽管我没有证据(也...

16得票7回答
一个所有节点都是黑色的树是红黑树吗?

看起来维基百科上的定义不是很精确: http://en.wikipedia.org/wiki/Red-black_tree#Properties 一个所有节点都为黑色的树是否是红黑树? 更新 由于rbtree的定义不太严格,我们如何决定将黑色节点的子节点打印为红色还是黑色?

88得票4回答
何时选择红黑树、B-树或AVL树?

作为一名程序员,我何时应该考虑使用红黑树、B树或AVL树?在决定选择之前需要考虑哪些关键因素? 有人能否针对每种树结构解释一个场景,说明为什么选择它而不是其他树结构,并引用关键因素?

10得票3回答
为什么AVL树在搜索方面比红黑树更快?

我在几个地方读到过avl树搜索更快,但无法理解。据我所知: 红黑树的最大高度 = 2 * log(N + 1) AVL树的高度 = 1.44 * log(N + 1) 这是因为AVL树更矮吗?

51得票2回答
红黑树 VS B 树

我有一个项目需要处理从几兆字节到几太字节的数据,需要实现快速的搜索、插入和删除操作。最近我一直在研究数据结构并对它们进行分析。具体来说,我想介绍3种情况,并就此提出问题: 数据量远远超过内存容量(样本范围在10-15TB之间)。在这种情况下,我会将数据结构存储在磁盘上。 相对于系统内存,数...

18得票4回答
这个问题的原因是什么导致了在 .Net 4 中出现如此巨大的性能差异?

我正在研究红黑树。我知道在.NET 4.0中,SortedSet类使用红黑树。因此,我使用Reflector将其部分取出并创建了一个RedBlackTree类。现在,我正在对这个RedBlackTree进行一些性能测试,并插入40000个连续的整数值(从0到39999),我惊讶地发现存在巨大的...

14得票2回答
为什么TreeMap不允许使用null键?

我正在尝试理解Java集合框架背后的概念,并遇到了这个问题 - 为什么TreeMap不允许空键? 如果我们尝试将null键添加到TreeMap中,它会引发NullPointerException。 我尝试通过谷歌内部工作原理来了解TreeMap,并发现它使用红黑树算法,但我现在很难理解,正...

9得票2回答
std::map<t1, t2>::erase(iterator position) 的工作原理是什么?

我在 cplusplus.com 上读到,通过传递迭代器作为参数来删除 std::map 中的元素的操作是常数时间。如果我没错(请纠正我),迭代器基本上是指向映射中元素的指针,并且 ++ 运算符只返回当前元素的顺序继承者,我想这就是在遍历 std::map 时实现排序结果的方式。现在,如果 m...

8得票5回答
JavaScript:需要一个不错的红黑树实现

我该在哪里找到可直接使用的数据结构?如果您知道任何好的“标准”数据结构集合,也请告诉我。