【数据结构-7.4 查找】平衡二叉树的删除

一、平衡二叉树的删除步骤

  • 平衡二叉树的删除操作: 删除结点后,要保持二叉排序树的特性不变(左<中<右);若删除结点导致不平衡,则需要调整平衡
  • 平衡二叉树的删除操作具体步骤 :
    (1)删除结点(方法同"二叉排序树")
    (2)一路向北找到最小不平衡子树,找不到就完结撒花
    (3)找最小不平衡子树下,"个头"最高的儿子、孙子
    (4)根据孙子的位置,调整平衡(LL/RR/LR/RL)
    (5)如果不平衡向上传导,继续(2)

二、AVL树的删除操作案例1(删除叶子节点-没有失衡)

(1)删除叶子节点

(2)向北查找,发现已经平衡,流程结束

三、AVL树的删除操作案例2(删除叶子节点-失衡)

(1)删除叶子节点

(2)删除叶子节点;一路向北找到最小不平衡子树


(3)找最小不平衡子树下,"个头"最高的儿子、孙子

(4)根据孙子的位置,调整平衡

(5)最小不平衡子树恢复平衡

三、AVL树的删除操作案例3(删除叶子节点-不平衡向上传导)

(1)删除叶子节点

(2)删除叶子节点;一路向北找到最小不平衡子树

(3)最小不平衡子树恢复平衡

(4)不平衡向上传导

(5)不平衡向上传导,二次调整

四、总结

相关推荐
一只旭宝14 分钟前
树的家族全景:从二叉树到 B+ 树
数据结构
垆边人似月.25 分钟前
华为题:每日温度
数据结构·c++·算法
Peregrine943 分钟前
数据结构 - > 树和二叉树
数据结构·算法
j7~1 小时前
【算法】专题四.前缀和:一维二维模板,配套 LeetCode 真题,结合同余定理、哈希前缀和,搞定子数组与子矩阵区间求和问题。
数据结构·c++·算法·前缀和·优选算法
启观川1 小时前
数据结构与算法 -第 3 章 常用算法-回溯算法
数据结构·笔记·python·算法
启观川10 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
Logic10112 小时前
C语言/数据结构欧几里得算法题解:长方形切割最大正方形——贪心划分计数
c语言·数据结构·算法·贪心算法·时间复杂度·空间复杂度·欧几里得算法
flinn_small14 小时前
三分算法:原理、实现与实战应用
数据结构·算法·三分
INGNIGHT14 小时前
944 · 最大子矩阵(前缀和)
数据结构·c++·算法
All for pursuit.15 小时前
【动态规划-6】96.不同的二叉搜索树
数据结构·c++·算法·leetcode·动态规划