《算法导论》笔记 第13章 13.4 删除

这篇博客详细探讨了红黑树的删除修复算法(RB-DELETE-FIXUP)。通过对13.4章节的练习题进行分析,证明了在执行删除修复后,树根始终为黑色,并解释了如何通过该算法恢复红黑树的性质4。同时,讨论了不同情况下红黑树的节点颜色变化,以及插入和删除操作对红黑树结构的影响。
摘要由CSDN通过智能技术生成

【笔记】

// 基本没搞懂


    NODE* rbDelete(NODE *z) {
        NODE *y, *x;
        if (z->l == nil || z->r == nil) { y = z; }
        else { y = treeSuccessor(z); }
        if (y->l != nil) { x = y->l; }
        else { x = y->r; }
        x->p = y->p;
        if (y->p == nil) { root = x; }
        else {
            if (y == y->p->l) { y->p->l = x; }
            else { y->p->r = x; }
        }
        if (y != z) {
            z->key = y->key;
            // copy y's satellite data into z
        }
        if (y->c == BLACK) { rbDeleteFixup(x); }
        return y;
    }
    void rbDeleteFixup(NODE *x) {
        NODE *w;
        while (x != root && x->c == BLACK) {
            if (x == x->p->l) {// x 为左儿子
                w = x->p->r;// w 是 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值