热门问题
时间线
聊天
视角

左倾红黑树

来自维基百科,自由的百科全书

Remove ads

左倾红黑树(英语:Left-leaning red–black tree,缩写:LLRB)是一种类型的自平衡二叉查找树。它是红黑树的变体,并保证对操作相同渐近的复杂性,但被设计成更容易实现。[1]

事实速览 左倾红黑树, 类型 ...

左倾红黑树(LLRB) 是 Robert Sedgewick 在 〈Left-Leaning Red-Black Trees〉(2008) 一文中提出,其核心理念是强制所有红边只能出现在左边,透过这个限制,把原本需要处理的对称情况“砍掉一半”,以此简化红黑树的实作复杂度,但仍保有与 2–3 树等价的平衡性

Remove ads

特性

左倾红黑树(Left-Leaning Red-Black Tree, LLRB)满足红黑树的所有性质:

  • 每个节点不是红色就是黑色。
  • NIL 节点(空节点)视为黑色。
  • 红色节点不能有红色子节点(即不能连续红)。
  • 从任一节点到其所有后代 NIL 节点的所有路径,都经过相同数量的黑色节点。
  • 根节点依惯例视为黑色。

此外,左倾性质(left-leaning property)还规定:

  • 如果一个节点只有一个红色子节点,这个红色子节点必须是左子节点。

左倾性质的好处是:能减少实作搜寻树操作时需要考虑的情况数量,让实作更简单。

与 2-3 树和 2-3-4 树的关系

LLRB(左倾红黑树)与 2–3–4 树是同构的(isomorphic)。 与传统红黑树不同的是,LLRB 强制 所有 3-node 都向左倾,因此 LLRB 与 2–3–4 树之间存在一对一的对应关系。 这表示:每一棵 LLRB 树,都唯一对应到一棵 2–3–4 树,反之亦然。

如果再额外加上一条限制:任一节点不得同时有两个红色子节点,那么 LLRB 树就会变得与 2–3 树同构,因为这个限制会禁止 4-node 的存在。

分析

所有已提出的红黑树算法,其特点都是: 在含有 N 个键的树中,最坏情况的搜寻时间会被限制在某个小常数倍的 log N。 而实际观察到的效能表现,通常也比这个最坏界限快上相同的倍数,接近一棵完全平衡树(perfectly balanced tree)中 log N 的理论最佳节点访问数。

论文

Remove ads

实现

更多信息 作者, 时间 ...
Remove ads
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads