数据结构学习笔记(12)----平衡二叉排序树

本文详细介绍了平衡二叉排序树的定义,包括平衡因子和平衡条件。讨论了四种平衡树调整方法:LL型、LR型、RR型和RL型。还概述了平衡树的建立过程,涉及查找插入位置、更新平衡因子以及处理失衡情况。最后通过实例展示了如何构造一个长度为12的平衡二叉排序树。
摘要由CSDN通过智能技术生成
定义:
  1. 左子树与右子树的高度之差的绝对值小于等于1
  2. 左右子树也是平衡二叉树
    a.平衡因子定义: 节点的左子树与右子树的深度之差**
    例如:这里写图片描述 这里写图片描述
平衡树的平衡方法:

(1)LL型
这里写图片描述

            B = A->lchild;
            A->lchild = B->rchild;
            B->rchild = A;
            A->bf = 0;
            B->bf = 0;
            if ( FA == NULL )
            {
                *root = B;
            }
            else if (A == FA->lchild )
            {
                FA->lchild = B;
            }
            else
            {
                FA->rchild = B;
            }

(2)LR型
这里写图片描述

    B = A->lchild;
            PAVLNode C = B->rchild;
            B->lchild = C->lchild;
            A->lchild = C->rchild;
            C->lchild = B;
            C->rchild = A;
            if (key > C->key)
            {
                A->bf = 0;
                B->bf = 1;
                C->bf = 0;
            }
            if (key < C->key)
            {
                A->bf = -1;
                B->bf = 0;
                C->bf = 0;
            }
            if (FA == NULL)
            {
                *root = C;
            }
            else if (FA->lchild == A)
            {
                FA->lchild = C;
            }
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值