红黑树节点的删除操作

本文详细探讨了红黑树节点删除的操作,包括删除后如何调整以保持红黑树的特性。主要分为删除操作和双黑处理两部分,涉及不同颜色组合的节点删除情况及对应的调整策略。
摘要由CSDN通过智能技术生成

    红黑树节点的删除操作比其节点的插入操作要麻烦很多,自己在这个知识点的学习当中也困惑很多,这篇博客是自己在红黑树学习当中的一些自我理解与总结。

红黑树节点的删除操作分为两大步骤:

(1)找到删除的节点并且删除它:因为在删除红黑树节点时,往往要删除x,但并不是要删除X那个节点,而是将红黑树的一个适当的节点进行删除,用这个适当的节点的值去填充要删除的x这个值。

(2)节点删除后对红黑树的调整,使其满足红黑树的特有条件。

一。找到删除的节点并且进行删除

        首先要了解,(1)如果删除的节点是黑色,且其左右节点都为黑色,要进行节点删除后的调整(双黑操作)。(进行调整是因为要满足红黑树的从某个节点出发其左右子树中的黑色节点数目相等)

                           (2)如果删除的节点为红色,则直接删除,不会对红黑树结构造成影响不需要进行调整。

 删除情况分为3种情况:

在看删除情况时建议先看看博客后面总结的双黑操作

       (1)删除点为叶子节点

                 (1)删除点为红色,直接删除


红黑树删除操作 - 枫叶 - 枫叶


                删除结点0,结点0为红色结点,直接删除即可                

             (2)删除点为黑色,又因为在红黑树中默认空节点为黑色的,所以要进行双黑操作。

                           例子1

红黑树删除操作 - 枫叶 - 枫叶

 图21
                     删除结点18,结点18为叶子结点,且为黑色,删除后出现双黑,属于双黑处理的第一种情况的(2),处理后

红黑树删除操作 - 枫叶 - 枫叶

图22



 
                                          例子2

  

红黑树删除操作 - 枫叶 - 枫叶


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值