红黑树性质

红黑树(red-black tree)是许多“平衡的”查找树中一种,它能保证在最坏情况下,基本的动态集合操作的时间为O(lgn)。

红黑树是一种二叉查找树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或black,通过对任何一条从根到叶子节点路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而近乎平衡的。

树中每个节点包含五个域:color,key,left,right,p。
如果某节点没有一个子节点或父节点,则该节点相应的指针域p包含值NIL。
将这些NIL视为指向二叉查找树的外结点(叶子)的指针,而把带关键字的结点视为树的内结点。

红黑树性质:
每个节点或者是红色的,或者是黑色的。
根节点是黑色的。
每个叶子节点(NIL)是黑色的。
如果一个节点是红色的,则它的两个儿子都是黑色的。
对每个节点,从该节点到子孙节点的所有路径上包含相同数目的黑节点。

黑高度
从某个节点x出发(不包含该该节点)到达一个叶子节点的任意一条路径上,黑色节点的个数称为该节点x的黑高度,用bh(x)表示。
从该结点出发的所有下降路径都具有相同的黑节点个数。
红黑树黑高度的定义为其根节点的黑高度。

引理:
一颗有n个内结点的红黑树的高度至多为2lg(n+1).

以某一节点x为根的子树中至少包含2^bh(x)-1个内结点.
设h为树的高度,根据性质4 ,从根节点的任一条简单路径上至少有一半的及诶单必是黑色的,根的黑高度至少是h/2;所以,n>=2^h/2-1
因此有:h<=2lg(n+1)

包含n结点的红黑树又是高度为O(lgn)的查找树,简单操作的运行时间为O(lgn)。

你可能感兴趣的:(数据结构&算法)