平衡二叉树插入节点的小技巧

例题一

![[数据结构/树/平衡二叉树/手动做题简单思路/1.png]]

若给如图所示的平衡二叉树插入 67 这个点

只能是如下所示

![[数据结构/树/平衡二叉树/手动做题简单思路/2.png]]

步骤

此时树不平衡需要做的事如下

  1. 从插入的节点 A 开始向上找最小不平衡子树 T
  2. 从节点 A 出发到根节点的路径上找和 T 的根节点相邻的最近的三个节点(包括根节点)
  3. 找到的这三个节点按照顺序为调整后平衡子树的随上层的三个点
  4. 其他点按照二叉排序树的规律填充
    在这里插入图片描述
步骤演示如下

![[数据结构/树/平衡二叉树/手动做题简单思路/3.png]]

如图所示

  1. 最小不平衡子树 T 为框起来的这一部分

  2. T 的根节点为 70 这个点,距离 T 的根节点最近的三个点依次是 67 68 70

  3. 这三个点按照二叉排序树排列
    ![[数据结构/树/平衡二叉树/手动做题简单思路/4.png]]

  4. 子树 T 上的其他点也按照规律填充(无其他点)

  5. 新子树 T 代替旧子树插入成功
    ![[数据结构/树/平衡二叉树/手动做题简单思路/5.png]]

例题二

![[6.png]]

我要插入 90 这个节点

![[7.png]]

过程如图示所示
![[13.png]]

例题三

插入 63 这个节点

![[14.png]]

最小不平衡子树

![[15.png]]

子树 T 的根节点相邻的三个最近节点

![[16.png]]

最终结果

![[17.png]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值