针对红黑树比较正确和完整的一个小总结

1、红黑树

红黑树是一种类似二叉平衡排序树,对树的平衡状态要求要松一点。避免了频繁左旋、右旋带来的时间和空间资源的消耗。

2、红黑树的几大特征

  • 1、根结点的颜色是黑色,叶子结点的颜色是黑色
  • 2、树中结点的颜色只能是红色/黑色
  • 3、红色结点的颜色只能是黑色
  • 4、插入结点时,默认是红色
  • 5、根结点到叶子结点的路径上,具有相同数量的黑色结点

红黑树高度差最大为2h

3、变色操作

当插入新结点后,如果不满足红黑树的性质,则需要进行变色操作。

  • 1、变色条件:当前结点是红色,且其父亲和叔叔结点都是红色时就需要进行变色。
  • 2、变色过程:将父亲结点、叔叔结点变为黑色,爷爷结点变为红色,再依次向上验证。

4、红黑树之旋转

4.1 左旋

  • 1、左旋的条件:当前插入的结点是位于右子树的红色结点,且其父亲为红色结点、叔叔为黑色结点时,需要进行左旋转操作。
  • 2、左旋过程:将当前结点变为父亲结点所在的位置,父亲结点变为当前结点的左孩子,然后对树进行调整。

4.2 右旋转

  • 1、右旋转的条件:当前插入的结点是位于左子树的红色结点,且其父亲是红色结点、叔叔结点是黑色结点时,需要进行右旋操作。
  • 2、右旋过程:
  • 1、在右旋转之前有个变色的操作,这里的变色和之前的变色有点不同之处,具体过程如下:将当前结点的父亲结点变为黑色、爷爷结点变为红色。2、按照爷爷结点作为根结点来进行右旋操作。具体就是将父亲结点作为根结点、爷爷结点作为右孩子,然后对树进行调整。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值