红黑树

红黑树是一种自平衡二叉查找树,在O(log n)时间内做查找,插入和删除等操作。统计性能优化于平衡二叉树(AVL树)。

红黑两色保证树的高度近似平衡,

节点是五元组:color(颜色),key(数据),left(左孩子),right(右孩子)和p(父节点)。

颜色是红或者黑。

根和叶子必须是黑色。

某一节点为红,则两个孩子必须是黑的。

从任一节点到其叶子的所有简单路径都包含相同数目的黑色节点。

节点的插入:

(1)插入新节点必须为红色,时间O(N)。导致出现两个连续红色节点的冲突,则通过颜色调换(color flips)和树旋转来调整。如果插入黑色会导致根到叶子的路径上有一条路上,多了一个额外黑节点,会很难调整。

(2)自上而下调整为红黑树。

调整方法有三种情况,详细见http://dongxicheng.org/structure/red-black-tree/
原文地址:https://www.cnblogs.com/cl1024cl/p/6205525.html