红黑树简要分析

红黑树概念

1 节点是红色或者黑色

2 根节点是黑色的

3红色的节点的孩子必须是黑色的 也就是红节点下的孩子节点必须是黑色的 

4每一个从根节点到叶子节点的黑色节点数量都必须一致

5叶子节点是黑色的

 

红黑树主要在于添加和删除的各种情况 

添加节点

  默认添加节点为红色节点 那么就会出现双红缺陷 有两个红色的连着的节点 这是不合定义的 需要做调整

 第一种情况:叔叔节点是红色的 那么实际上是出线了上溢的情况 那么要做相应处理

这种情况双红缺陷会往上蔓延 至多达到树根 那就是logn的复杂度的重新染色 

不过结构的改变至多常数级别

 

第二种情况:叔叔节点是黑色的

这种情况不会发生向上蔓延 做一次结构调整就ok了!

 

删除 一共四种情况 默认删除P到1叶子节点的节点 也就是N下面的节点 显示的是已经删除的

第一种分类 兄弟节点S是黑色的 

    (1)兄弟S的孩子是红色的

做一次旋转和变色就解决了 S顶替P Sr做顶替S操作 一次解决 没有其他情况

   (2)兄弟S的爸爸节点P是红色的 

把父亲节点变黑 S节点变红 一次解决 over!

(3)父亲节点是黑色的 也就是全黑可以这么理解 

双黑缺陷向上蔓延 但是有S红节点可以利用 

第二种分类 

兄弟S节点是红色的 

双黑缺陷没有解决 向上蔓延 不过出现了P红色节点 可以利用所以只会变成(1)或者(2)这两总情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值