红黑树
**简介:**红黑树(Red Black Tree) 是一种自平衡二叉查找树,红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。
特征
红黑树是每个结点都带有颜色属性的二叉查找树,颜色或红色或黑色。 在二叉查找树强制一般要求以外,红黑树特征如下:
性质1. 结点是红色或黑色。
性质2. 根结点是黑色。
性质3. 所有叶子都是黑色。(叶子是NIL结点)
性质4. 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
性质5. 从任一节结点其每个叶子的所有路径都包含相同数目的黑色结点。
红黑树的时间复杂度: O(lgn)
红黑树操作:
左旋:
对x进行左旋,意味着"将x变成一个左节点"。
右旋:
对Y进行右旋,意味着"将Y变成一个右节点"。
将2-3-4树排成红黑树: