红黑树
红黑树是一棵 二叉搜索树 ,每个结点上增加了一个存储位来表示结点的颜色,可以是RED 或 BLACK。 通过对任何一条root->叶子 的路径上的所有节点的颜色来进行约束。 红黑树确保没有一条路径比其他路径长2倍,是近似平衡的。 性质: 1、节点要么红,要么黑; 2、根节点黑色; 3、叶节点黑; 4、如果一个节点红,那么两个子节点都是黑; 5、每个节点到所有叶子节点的路径上的黑节点数目一样; 红黑树的操作: 每一个红黑树也是一个特化的二叉查找树,因此红黑树上的只读操作与普通二叉查找树上的只读操作相同。 插入删除可能会导致不再符合红黑树的性质,恢复红黑树的性质要O(logn),效率高。 一棵含有n个节点的红黑树的高度至多为2log(n+1) .