红黑树的特性和优势,在什么情况下需要变色,在什么情况下需要旋转?

在这里插入图片描述
特性(除了具备二叉查找树的特性外,还具备如下特性):
(1)节点是红色或者黑色
(2)根节点是黑色
(3)每个叶子节点(也叫终端节点,简称“叶子”)都是黑色的空节点(NIL节点)
(4)每个红色节点的两个子节点都是黑色。(从每个叶子节点到根节点的路径上不能有两个连续的红色节点)
(5)从任一节点到其每个叶子的所有路劲都包含相同数目的黑色节点

优势:
(1)自平衡。红黑树从根到叶子的最长路径不会超过最短路径的2倍,解决了二叉查找树容易不平衡的缺陷(在某些情况下会退化成一个线性结构),提高了读取性能(树越平衡,读取性能就越好)。
(2)虽然AVL树具有更高的读取性能(因为平衡性更好),但是当插入或删除节点时,AVL树要复杂很多,红黑树在插入或删除节点方面具有更高的效率。

在什么情况下需要变色,在什么情况下需要旋转?
在红黑二叉树中插入节点或删除节点后,如果破坏了红黑树的规则(也就是上述的特性),则需要对修改后的红黑树进行调整,使其重新符合红黑树的规则。首先是变色(往往需要多次变色,一次改变一个节点的颜色),当变色无能为力时,就使用旋转,旋转一次之后,然后再继续多次变色,如此反复循环,直到修改后的红黑树重新符合规则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值