红黑树的缺点是什么?

时间:2011-05-10 14:57:14

标签: database data-structures data-storage red-black-tree

从我所读到的关于红色 - 黑色树木的所有内容来看,它们似乎是存储数据的最佳数据结构。

我正在尝试建立一个数据库,我想知道,只是在红黑树的实施方面,我应该更加小心,不应该做什么。

红色 - 黑色真的那么完美吗?

2 个答案:

答案 0 :(得分:4)

这取决于您查询和更新数据的方式。例如,如果您不需要有序数据,则哈希映射可能更好,因为它们具有(预期)恒定时间查找/插入而不是对数。即使您确实需要有序数据,红色/黑色树也可能不完美 - 特别是,如果您正在实施基于磁盘的数据库。在基于磁盘的I / O中,与顺序块读取相比,寻求是昂贵的,因此目标是最小化磁盘访问的数量。在这种情况下,B树(或B +树或B *树)更好 - 这些都是为了在存储在磁盘上时快速而设计的。

答案 1 :(得分:3)

红黑树远不适合所有数据访问。他们有自己的位置,但在很多情况下,其他方法如散列映射和普通旧列表更好。

在很多情况下,红黑树的一个值得注意的缺点是它是二叉树,因此查找是O(lg(n)),其中哈希表具有O(1)的查找。