红黑树特点
- 每个节点不是黑色就是红色
- 根节点是黑色
- 每个叶子节点是黑色,但是Java中使用null代表空节点,所以遍历不到黑色的叶子节点
- 红色节点的子节点必须是黑色节点,不可以是红色节点
- 但是黑色节点的子节点可以是黑色节点
- 从根节点到所有叶节点之间的黑色节点个数是一致的
- 所有新增的节点都是红色节点
插入数据处理
- 如果插入的是根节点,因为根节点必须是黑色节点,而插入的是红色节点,进行一次变色操作
- 如果插入节点是左节点,且插入节点的父节点是红色节点,祖父节点的另一个子节点也为红色节点,对祖父节点及祖父节点下的子节点进行变色,并进行右旋操作,即祖父节点的父节点直接连到父节点,祖父节点变成父节点的子节点
- 如果插入节点是左节点,且插入节点的父节点是红色节点,但是祖父节点的另一个子节点是黑色节点,对祖父节点及父节点进行变色,并进行右旋操作
- 如果插入节点是右节点,且插入节点的父节点是红色节点,但是祖父节点的另一个子节点是黑色节点,先进行左旋操作
标签:黑色,祖父,插入,红色,红黑树,节点 来源: https://www.cnblogs.com/qixioa/p/13703434.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。