记-数据结构与算法-二分搜索树、平衡二叉树

二叉搜索树

定义

一种在有序数组中查找某一特定元素的搜索算法,称之为二叉查找或者二分查找法。

在树结构中类似,从中间元素开始查找,对比大小,缩小搜索范围。

而二叉(分)查找(搜索)树,

每个节点的key值大于左子节点,小于右子节点,不一定是二叉树。

借助这个性质,二叉搜索树不仅可以用来搜索查找数据,还可以高效地插入、删除数据。

遍历

二叉树的前序遍历、中序遍历、后序遍历

添加

遵循插入元素大于中间元素向右支走,小于中间元素左支走,不断迭代循环。

删除

分为三类:

  1. 没有子类,直接删除
  2. 有一个子类,目标节点被删除,将子节点移动到已删除节点的位置
  3. 有两个子类,目标节点被删除,从删除节点的左子树中找到最大的节点,将其移到到删除的节点的位置
局限

二分搜索树一旦退化成单链表,查找搜索效率和插入删除效率降低。

平衡二叉树(AVL树)

Wiki

在计算机科学中,AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是 O(logn)。增加和删除元素的操作则可能需要借由一次或多次树旋转,以实现树的重新平衡。AVL 树得名于它的发明者 G. M. Adelson-Velsky 和 Evgenii Landis。

优势

针对于二叉搜索树查找效率取决于树的高度,只要保证树的高度就可以保证搜索效率。经过研究,当节点数目一定,保持树的左右两端平衡,就是平衡二叉树。

即要求,任意左右子树的高度差只能是-1、0、1三个数值,这被称之为平衡二叉树。

另外,上面所谓树的高度差和深度差都可以表述成平衡二叉树的平衡因子。平衡因子只能取-1、0、1。

AVL树插入后最小失衡树与左右旋调整

最小失衡树:在新插入的节点向上查找,以第一个平衡因子的绝对值超过 1 的节点为根的子树称为最小不平衡子树。

失衡调整方法:通过旋转最小失衡子树来实现的


失衡调整方法.jpeg
AVL树删除节点

需要重新检查平衡性并且修正,通过左右旋就能得到。

小结

平衡二叉树的优势在于当二叉树退化成单链表失衡,固定了树的高度,保证了查找搜索效率。

但是为了保证平衡性,损失了在动态插入和删除的效率

因此需要其他灵活性修改,例如红黑树(不是真正的平衡二叉树,借鉴了思想,理论基础2-3-4树等。)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • 二叉搜索树,平衡树,B,b-,b+,b*,红黑树 二叉搜索树 ​ 1.所有非叶子结点至多拥有两个儿子(Le...
    raincoffee阅读 3,844评论 3 18
  • 1. 树的概念 一个树由节点组成,这些节点包含根节点,父节点,子节点,兄弟节点;没有任何一个节点的树称为空树;如果...
    HChase阅读 6,070评论 0 34
  • 目录 1、什么是树 2、相关术语 3、二叉树 3.1、二叉树的类型 3.2、二叉树的性质 3.3、二叉树的结构 3...
    我哈啊哈啊哈阅读 2,526评论 0 10
  • 下午一个人点了蜜汁烤鸡还有鸡腿吃~图书馆因为在预防"登革热",所以不允许带食物进去,连水果也禁止了。所以自己是在"...
    风兮_ebc5阅读 310评论 0 0
  • ■ 諺語寓意翻譯 我只為我說的話負責 而不是你所理解的事 ■ 聽其言、觀其行,一目了然。 ■ 一個坐姿...
    黑貓子阅读 362评论 0 0