【数据结构-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)不平衡向上传导,二次调整

四、总结

相关推荐
㓗冽1 天前
8皇后·改-进阶题16
数据结构
月落归舟1 天前
帮你从算法的角度来认识数组------( 二 )
数据结构·算法·数组
Wave8451 天前
数据结构—树
数据结构
ic爱吃蓝莓1 天前
数据结构 | HashMap原理
数据结构·学习·算法·链表·哈希算法
liuyao_xianhui1 天前
优选算法_分治_快速排序_归并排序_C++
开发语言·数据结构·c++·算法·leetcode·排序算法·动态规划
CryptoPP1 天前
开发者指南:构建实时期货黄金数据监控系统
大数据·数据结构·笔记·金融·区块链
月落归舟1 天前
每日算法题 14---14.环形链表
数据结构·算法·链表
光电笑映1 天前
STL 源码解剖系列:map/set 的底层复用与红黑树封装
c语言·数据结构·c++·算法
沉鱼.441 天前
滑动窗口问题
数据结构·算法
ysa0510301 天前
二分+前缀(预处理神力2)
数据结构·c++·笔记·算法