【数据结构与算法】查找算法(二)平衡二叉树


一、概念

  • 平衡二叉树

    (Self-Balancing Banary Search Tree 或者 Height-Balanced Binary Search Tree),是一种二叉排序树,其中每一个结点的左子树和右子树的高度差至多等于1。

  • AVL 树

    两位俄罗斯数学家G.M.Adelson-Velskii 和E.M.Landis 在1962年共同发明一种解决平衡二叉树的算法,所以不少资料这样的平衡二叉树为 AVL树。可以看出它是一种高度平衡的二叉排序树

  • 平衡因子

    我们将二叉树上左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor)

  • 最小不平衡子树

    当向一棵树插入结点,距离插入结点最近的,且平衡因子的绝对值大于1的结点为根的子树,我们称为最小不平衡子树

举例如下:

符合平衡二叉树

不符合的如下

  • 第一张图是因为并非升序。
  • 第二张图:虽然其他姐都都比较平衡,但是结点6的左子树深度3,右子树0,差别为3,不符合每一个结点的左子树和右子树高度差至多等于1。

最小不平衡树示意图,插入新结点5后,树原本的平衡被打破,结点4 的左右子树深度为,左3 - 右 1 = 2,大于1。称为了非平衡结点。此时从结点5开始以下的子树为最小不平衡子树。

二、实现原理

三、算法实现


文章作者: 李佳
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 李佳 !
评论
 上一篇
Block使用及原理探究 Block使用及原理探究
出于需要,本文分析时引用苹果开源的libclosure-74 源码,请点击对比查看苹果libclosure源码 一、Block概念1.1 名词解释也成为匿名函数,是将函数及其执行上下文封装起来的对象。有参数和返回值。 Block的结构是
2020-05-24 李佳
下一篇 
【数据结构与算法】查找算法(一) 【数据结构与算法】查找算法(一)
一、概论1.1 基本概念查找(searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定制的数据元素(或记录)。 查找表(search table)是由同一类型的数据元素(或记录)构成的组合。例如下图: 关键字(key)
2020-05-13 李佳
  目录