红黑树的思想
来源:互联网 发布:南风知我意1全文阅读 编辑:程序博客网 时间:2024/05/17 04:31
红黑树也是平衡二叉搜索树的一种,红黑树可能产生不平衡状态(高度相差1以上),但是红黑树的搜索效率与AVL树基本相等。
1.红黑树性质:
红黑树必须满足以下四个规则:
a)每个节点不是红色就是黑色
b)根节点必须是黑色
c)如果节点为红色,其子节点必须为黑色
d)任何一个节点至NULL的任何路径,所含的黑节点树必须相同
*为了方便通常使Null节点为黑
2.插入节点的情况讨论
根据红黑树的性质4,新插入节点必定为红色节点(确保不会新增黑节点造成树的不平衡),此时分为以下两种情况:
1)插入节点的父节点为黑色:此时符合红黑树的性质要求,直接插入即可
2)插入节点的父节点为红色:此时祖父节点将为黑色(因为不能有连续的红色),将有两种情况:
2.1)若其伯父节点为红色:则直接将其父节点与伯父节点改为黑色,将其祖父节点该为红色,并向上回溯,检查其祖父节点是否符合红黑树性质
2.2)若其伯父节点为黑色:则需要再分两种情况讨论:
2.2.1)若该节点为祖父节点的外侧节点(如:父节点位于祖父的左节点,子节点位于父节点的左节点):则单旋并使父节点为黑色,祖父节点为红色。
2.2.2)若该节点为祖父节点的内侧节点(如:父节点位于祖父的左节点,子节点位于父节点的右节点):则双旋并改变颜色
0 0
- 红黑树的思想
- 红黑树 删除 背后的思想
- 红黑树+ 折半查找的思想
- 数据结构的总体思想(集装箱思想)
- BaseServlet思想(Struts2的思想)
- n的思想计数器思想万能法
- 算法的周期思想和临界值思想
- 鱼的思想
- 工作流的核心思想
- 孙子兵法的思想
- ERP的管理思想
- 思想的独舞
- ERP的管理思想
- ERP的核心思想
- linux的思想
- 【程序员】的思想
- IPD的核心思想
- 有限状态机的设计思想
- php mysqli_connect_error()与mysqli_connect_errno()函数的区别
- jquery之checkbox(全选,全不选以及显示勾选的value值等多种情况)
- 单例模式
- pat1023Have Fun with Numbers (20)
- LCA
- 红黑树的思想
- Android开发学习系列(一)——Android按钮圆角美化
- 11 java.util.ArrayList
- Activiti入门教程十一(来杯流程喝喝吧)
- 关于vs2010运行C程序时,运行结果窗口一闪而过的问题
- webservice设置--“/WebServiceForTest”应用程序中的服务器错误。
- OC系列之Foundation框架
- 数据中心分解实验一
- HTML学习记录<八> :嵌入JavaScript的位置