红黑树很有用

时间:2012-01-06 21:43:37

标签: data-structures

  

可能重复:
  Red-Black Trees

我开始在红黑树上观看lecture,并在15分钟后放弃。

当然,在进入理论之前,我没有看过前10个讲座,但为什么没有现实世界的例子呢?

有人可以举例说明为什么红黑树是必不可少的数据结构吗?

4 个答案:

答案 0 :(得分:2)

红黑树是自平衡的,因此可以在O(log n)时间内插入,删除和搜索。对于插入和删除操作,其他类型的平衡树(例如AVL树)通常较慢。

此外,红黑树的代码往往更简单。

它们适用于创建地图或关联数组以及专用数据存储。我在高速电信应用中使用了一个来实现成本最低的路由系统。

答案 1 :(得分:0)

注意:我没有看过这个讲座。

当添加或删除项目时,红黑树是自平衡的二叉搜索树。此功能可确保此树中的每个搜索都具有O(logn)复杂度。

如果构建一个树而不平衡它,则可以创建一个实际上是O(n)复杂度的链表的退化树。

答案 2 :(得分:0)

Wikipedia说“自平衡二叉搜索树”。

“非常简单地说,红黑树是一个二叉搜索树,它以一种合理平衡的方式插入和删除树。”

当数据正好排序时,这会有所帮助。没有平衡,树就会转换为链表。

答案 3 :(得分:0)

Wikipedia提供了一个解释和一个重要的例子。

红黑树为插入时间,删除时间和搜索时间提供最坏情况保证。这对于实时应用程序非常有用。

真实世界的例子是Linux内核中的Completely Fair Scheduler。