Red-Black Tree红黑树

红黑树特点:

        1.根节点必须为黑色;

        2.每个节点到子节点经过相同数目的黑色节点;

        3.红色节点的子节点必须是黑色;

        4.空指针也作为节点

红黑树如何插入新的节点?

        1.如果是空树,插入新的黑色节点作为根节点;

        2.如果不为空,插入一个新的红色节点;

        3.如果父节点是黑色则不管;

        4.如果父节点的颜色是红色,他也是红色,那么执行重新着色,并检查新节点的父节点,如果它不是根节点,那么重新着色,父节点变黑色;

        5.如果父亲颜色是红色,父亲的兄弟节点是空或黑色,则需要旋转变色;|Height(RightTree)-Height(LeftTree)|<=1;不满足条件,所以该进行左下旋、右下旋、LR先左上旋再右下旋、RL先右上旋再左下旋

        6.父节点为红色,子节点为红色,如果不是根节点,则重新着色

红黑树与平衡二叉树使用场景:

        大量的增删操作,搜索较少可以使用红黑树;

        大量的搜索,较少的增删操作可以使用平衡二叉树;
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值