算法导论读后感-之红黑树的性质
2017-11-12 14:48
253 查看
红黑树是具有下列性质的二叉搜索树:
1.每个节点或是红色的,或是黑色的。
2.根节点是黑色的。
3.每个叶节点(NIL)是黑色的。注意,这里的叶节点均为外部节点。
4.如果一个节点是红色的,则它的两个子节点都是黑色的。
5.对每个节点,从该节点到其所有后代的简单路径上,均包含相同数目的黑色节点。
从某个节点x出发(不含该节点),到达一个叶节点的任意一条简单路径上黑色节点的个数(包括外部节点NIL),称为该节点的黑高。记做:bh(x).
引理:一棵有n个内部节点的红黑树高度之多为2lg(n+1).
意义:红黑树具有O(lg(n))的算法复杂度。
证明:设x为任意节点,当x为叶节点(NIL)时,x有0个内部节点。
当x为具有左右内部节点的子节点时,将x的高度记做bh(x)。则:
a)若x子节点为红,则子节点的高度也为bh(x);
b)若x子节点为黑,则子节点的高度为bh(x)-1.
根据归纳法,子节点最少具有 2^bh(x-1)-1个内部节点。
因此x具有至少 2*( 2^bh(x-1)-1)+1 = 2^bh(x)-1个内部节点。
即 n>=2^bh(x)-1。 又根据性质4,可得bh(x)>=h/2。
因此,n>=2^(h/2)-1。因此,h<=2lg(n+1)。
1.每个节点或是红色的,或是黑色的。
2.根节点是黑色的。
3.每个叶节点(NIL)是黑色的。注意,这里的叶节点均为外部节点。
4.如果一个节点是红色的,则它的两个子节点都是黑色的。
5.对每个节点,从该节点到其所有后代的简单路径上,均包含相同数目的黑色节点。
从某个节点x出发(不含该节点),到达一个叶节点的任意一条简单路径上黑色节点的个数(包括外部节点NIL),称为该节点的黑高。记做:bh(x).
引理:一棵有n个内部节点的红黑树高度之多为2lg(n+1).
意义:红黑树具有O(lg(n))的算法复杂度。
证明:设x为任意节点,当x为叶节点(NIL)时,x有0个内部节点。
当x为具有左右内部节点的子节点时,将x的高度记做bh(x)。则:
a)若x子节点为红,则子节点的高度也为bh(x);
b)若x子节点为黑,则子节点的高度为bh(x)-1.
根据归纳法,子节点最少具有 2^bh(x-1)-1个内部节点。
因此x具有至少 2*( 2^bh(x-1)-1)+1 = 2^bh(x)-1个内部节点。
即 n>=2^bh(x)-1。 又根据性质4,可得bh(x)>=h/2。
因此,n>=2^(h/2)-1。因此,h<=2lg(n+1)。
相关文章推荐
- 算法导论读后感-之树的旋转(维护红黑树的性质)
- 算法导论读后感-之树的旋转(维护红黑树的性质)
- 算法导论读后感-之树的旋转(维护红黑树的性质)
- 算法导论读后感-之树的旋转(维护红黑树的性质)
- 算法导论读后感-之红黑树的性质
- 算法导论读后感-之红黑树的性质
- 算法导论读后感-之红黑树的性质
- 《算法导论》笔记 第13章 13.1 红黑树的性质
- 《算法导论》笔记 第13章 13.1 红黑树的性质
- 算法导论——13.1红黑树的性质
- 《算法导论》读后感
- 算法导论13(红黑树)
- 算法导论 红黑树 学习 删除(四)
- 算法导论学习笔记(九):红黑树
- 算法导论程序32--红黑树的删除
- 算法导论 第13章 红黑树
- 算法导论红黑树实现
- 算法导论读后感-之堆,堆排序,堆排序的应用
- 算法导论读后感-选取数组中的第X小(大)的元素
- 《算法导论》学习笔记(4)——红黑树