您的位置:首页 > 其它

算法导论 红黑树基础知识

2011-03-03 13:28 267 查看
红黑树的五个特点:
1. 每个节点颜色或红或黑
2. 根节点是黑色
3. 每个叶节点为黑色(通常为了简便,所有叶子节点都用一个黑节点代替,或者在图中是直接省略)
4. 如果一个节点是红的,那么它的两个字节点一定是黑的
5. 对于任意一个节点,从这个节点出发直到叶子的两条路径上的黑节点的数目相同(对于一般树的情况,则是所有路径上的黑节点数目相同)

概念:
black height:从一个节点出发到一个叶子节点的路径中包含的黑节点的数目叫做这个节点的black height,根据性质5,black height与路径的选择无关,是一个节点的性质。

定理:
一个有n个节点红黑树的高度不超过2*lg(n+1)。

证明:要证h<=2*lg(n+1),只要证n>=2h/2 -1,因为
h(x)<2*bh(x) x为红节点
h(x)=2*bh(x) x为黑节点
所以h(x)<=2*bh(x)

要证n>=2h/2 -1,只要证n>=2bh(x) -1,用归纳法。
对于只有一个内节点的情况,由性质2可知,black height等于1,n=2bh(x) -1
令以节点x为根的子树的black height为bh(x),子树节点总数为n>=2bh(x) -1
对于x的两个子节点,其black height至少为bh(x)-1,所以两个子树的节点数目之和不少于(2bh(x)-1 -1)+(2bh(x)-1 -1),再加上根节点,节点总数为(2bh(x)-1 -1)+(2bh(x)-1 -1)+1=2bh(x) -1
即n>=2bh(x) -1。而bh(x)>=h(x)/2,所以n>=2h/2 -1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: