码迷,mamicode.com
首页 > 其他好文 > 详细

二叉查找树之红黑树

时间:2018-01-30 19:30:31      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:结构图   ref   如何   方式   在线   avl   实现   inf   bsp   

一 .关于红黑树,先上一张图,这里提供一个可视化数据结构的网站:可视化带动画的数据结构基本的在线操作,我在这上面生成了一张:

技术分享图片

网上有很多教程,写的也非常棒,这里简单的总结一下其基本性质:

 

1.每一个节点或者是红色,或者是黑色;

2. 根节点是黑色的;

3.如果一个节点是红色的,那么它的子节点必须是黑色的;

4.从一个节点到一个null引用(如上图 的 60节点的左子节点其实是没有的)的每一条路径一定包含相同数目的黑色节点

5.规定 null引用指向的节点(即空节点)是黑色的。

 

二 .为啥有了平衡二叉树还要有红黑树

根据二者的结构图很容易看出红黑树的查找速度明显不如AVL树,为啥还会有红黑树的出现

三 .红黑树在更新的时候是如何维护平衡的

根据上面描述的基本性质,可以推断维护平衡的其中一个条件是 给节点涂上颜色,但是涂上颜色后不一定平衡, 这就用到了前面AVL树的维持平衡的方式:旋转

综合即两种方式:

1. 改变节点的颜色

2.旋转节点

四 .红黑树的插入实现,有图,有代码

二叉查找树之红黑树

标签:结构图   ref   如何   方式   在线   avl   实现   inf   bsp   

原文地址:https://www.cnblogs.com/blentle/p/8386256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!