24得票6回答
AVL树是邪恶的吗?

我正在阅读Steve Yegge关于单例模式的文章,他在其中提到他的老师告诉他AVL树是邪恶的。这只是因为红黑树是更好的解决方案吗?

21得票4回答
连接红黑树

OCaml标准库提供了一个出色的Set实现,使用非常高效的分治算法来计算两个集合的union。 我认为它可以从一个集合中获取整个子树(而不仅仅是单个元素),并将其插入到另一个集合中,在必要时进行重新平衡。 我想知道这是否需要AVL树中保留的高度信息,或者在红黑树中也可以实现。例如,是否可以更...

21得票3回答
有人能清晰地解释一下删除左倾红黑树的过程吗?

我正在学习左倾红黑树,教授是罗伯特·塞奇威克 http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf 虽然我已经理解了2-3树和L...

20得票2回答
红黑树是如何工作的?

有很多问题围绕着红黑树,但它们都没有回答它们是如何工作的。为什么叫做红黑树?它是如何保持树的平衡(从而提高性能,相较于不平衡的二叉搜索树)?我只是想知道它是如何以及为什么运作的概述。

20得票6回答
哈希表与自平衡搜索树

我很好奇,有什么理由可以超越使用哈希表而使用自平衡树技术来存储项。 我知道哈希表无法维护插入顺序,但我总是可以在顶部使用链表来存储插入顺序序列。 我知道对于少量的值来说,哈希函数有额外的成本,但我总是可以将哈希函数与键一起保存以进行更快的查找。 我了解到,相对于直接实现红黑树,哈希表的实...

18得票1回答
Scala范围/区间映射结构

我有一个和能够将一系列键映射到值的数据结构中提到的问题几乎相同,但是针对的是Scala。 也就是说,我想要一个可变的一维非重叠区间[a[i], b[i]),它将映射到某种值v[i]。用于执行这种工作的标准底层数据结构是红黑树。 我希望它具有以下操作,最好所有操作的复杂度都为O(log n)...

18得票1回答
红黑树伪代码冗余性

在《算法导论第三版》中,他们提供了红黑树删除操作的伪代码实现。以下是其内容... RB-DELETE(T, z) y = z y-original-color = y.color if z.left == T.nil x = z.right ...

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

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

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

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

16得票1回答
支持合并没有重叠区间的区间树算法

我正在寻找一种类似于CLR中红黑区间树的区间树算法,但它支持默认合并区间,以便永远不会有重叠的区间。 换句话说,如果你有一棵包含两个区间[2,3]和[5,6]的树,并且你添加了区间[4,4],那么结果将是包含一个区间[2,6]的树。 谢谢 更新:我考虑的用例是计算传递闭包。区间集用于存储...