什么是红黑树
我们平时说的平衡二叉查找树一般指的是AVL树,在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。红黑树也是自平衡的二叉查找树,红黑树由自己的性质约束,通过变色和旋转保持相对平衡的结构。与AVL树相比,条件没那么苛刻,插入和删除数据时会用较少的时间,查询数据时也不会用慢太多。
红黑树性质
性质2. 根结点是黑色。
性质3. 所有叶子都是黑色。(叶子是NIL结点)
性质4. 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
性质5. 从任一节结点其每个叶子的所有路径都包含相同数目的黑色结点。
这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。
是性质4导致路径上不能有两个连续的红色结点确保了这个结果。最短的可能路径都是黑色结点,最长的可能路径有交替的红色和黑色结点。因为根据性质5所有最长的路径都有相同数目的黑色结点,这就表明了没有路径能多于任何其他路径的两倍长。
示例
在线创建红黑树的网站:Red/Black Tree Visualization