关于红黑树的一些总结

红黑树:R-B Tree 
    也是一颗自平衡的有序二叉树,但它的平衡不是根据子树的高度来调整的
    而是给每个节点设置颜色,通过颜色的关系达到平衡

红黑树的特性:
    1、每个节点或者是黑色或者是红色
    2、根节点必须是黑色
    3、每个叶子节点(NULL)是黑色
        [注意:这里的叶子节点,是指空的叶子节点(NULL)]
    4、如果一个节点是红色,则它的子节点必须是黑色
    不能已有两个连续的红色
    5、从从一个节点到该节点的所有子孙节点的所有路径上,包含了相同数目的黑色节点

    红黑树只能保证大致上是平衡的(最长路径不会超过最短路径的两倍)

红黑树的插入:
    插入的节点必须是红色
    1、如果父节点是黑色,直接插入、不需要调整
    2、如果父节点是红色,需要调整
        a、叔叔节点不存在 or 叔叔节点为黑色 
            进行左旋 or 右旋
            祖父节点置红、父节点置黑    黑色节点不增加
        b、叔叔节点存在且为红色
            祖父节点置红、父节点和叔叔置黑
            把祖父节点看作当前节点,继续向上讨论
    讨论a:
        1、父节点为祖父节点的左子树,叔叔为右
        (i)node节点为父节点的右节点,以父为轴右旋转
            祖父置红、父置黑

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值