查找-树表的查找-平衡二叉树

目录

  • 平衡二叉树得定义
  • 插入操作
  • 平衡二叉树的平衡调整方法
  • 查找效率分析

平衡二叉树得定义

平衡二叉树(Balanced Binary Tree),简称平衡树(AVL树),平衡二叉树或者空树,或者是具有以下特征得二叉树排序是:

  • 左子树与右子树得深度之差得绝对值不超过1;
  • 左子树和右子树也是平衡二叉树。

平衡因子(BF) = 左子树高度-右子树的高度
平衡因子的值只可能是 -1,0或1。
最小不平衡子树:插入结点最近且平衡因子绝对值超过1的祖先结点

查找-树表的查找-平衡二叉树_第1张图片

//平衡二叉树结点
typedef struct AVLNode{
    int key;     //数据域
    int balance; //平衡因子
    struct AVLNode *lchild; 
    struct AVLNode *rchild;
}AVLNode,* AVLTree;


插入操作

插入新的结点
查找路径上所有结点都有可能受到影响
从插入点往回找到第一个不平衡结点,调整以该结点为根的子树(最小不平衡子树)

平衡二叉树的平衡调整方法

LL 在A的左孩子的左子树中插入导致不平衡

RR 在A的右孩子的右子树中插入导致不平衡

LR 在A的左孩子的右子树中插入导致不平衡

RL 在A的右孩子的左子树中插入导致不平衡

查找效率分析

你可能感兴趣的:(数据结构,数据结构)