【软考】---平衡二叉树

原创 2015年10月12日 11:52:30
         最近在学习AVL树的转换,本以为自己挺擅长的,但却经常转错。经过思考发现:没有理解原理肯定知识运用的就比较生疏!所以我就在小伙伴的帮助以及大量查阅资料的情况下了解了一些关于二叉排序树,平衡二叉树和AVL树的知识,分享给大家,希望可以有帮助!


平衡二叉树:

它或者是一颗空树;
或者是这样一颗树:树种任一节点的左右子树的深度相差不超过1。
也就是节点平衡度只能为0,1,-1三个值中的一个


二叉排序树:

又叫查找二叉树
它是一颗空树;
或者满足二叉排序树的性质为:
1、若它的左子树非空,则左子树上所有结点的值均小于根结点的值。
2、若它的右子树非空,则右子树上所有结点的值均大于根结点的值。
3、左、右子树本身是二叉排序树


AVL树:
   
    又叫平衡二叉查找树,我自己认为其实AVL树是平衡二叉树和二叉排序树的结合,用于提高二叉排序树的查找效率!AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis。
   我注意到:书上说平衡二叉树又称为AVL树,但是由上面的对比我们可以很明白的看出来,他们两之间还是有一定的区别的!一定不要弄混了!


AVL树的动态转换:
    
    分析二叉排序树的查找过程,我们可以明显的发现只有在树的形态比较均匀的情况下,查找效率才能达到最佳!而把二叉排序树转化为AVL树就可以让不平衡的二叉排序树的查找效率达到最好!如何转化呢?
建议大家看下边的类型转换的时候,注意各个结点的大小(数字)的变化。

LL型变换:

RR型变换:

LR型双向旋转平衡处理:



RL型双向旋转平衡处理:

   根据不平衡的二叉排序树的情况,对应上面的四种转换,就可以非常简单的把不平衡的二叉排序树转换成AVL树,从而保证二叉排序树的查找效率最高!



平衡二叉树一定是二叉排序树吗?
    
    不一定是。
    从上面的定义到引申的讲解我们可以知道:平衡二叉树的定义只是它的平衡因子取1,-1,0而已,也就是任何一个二叉树只要满足平衡因子是这三个值就是平衡二叉树!
    而二叉排序树使用平衡二叉树的作用只是为了将二叉排序树和平衡二叉树结合成AVL树,从而使二叉排序树的查找更高效而已!


小总:
    
    每次小组讲课的时候,组员们都会说自己不会平衡二叉树的问题,然后每次给组员讲,自己也都是非常的糊涂,所以索性就把它弄个清楚再讲,而不是针对某个题去讲,这不就更好的学会了这些知识了嘛!软考还没有结束,知识还需要查询理解并总结啊!大家不要再囫囵吞枣了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

软考考点---平衡二叉树

平衡二叉树(Balanced binarytree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。...
  • Senior_lee
  • Senior_lee
  • 2014年10月05日 10:24
  • 1689

【软考】-数据结构-平衡二叉树

【平衡二叉树的由来】:        平衡二叉树是一个排序二叉树,用来查找。        有这样一个规律:同样一个二叉排序树。像下图这样:         查找1这个数,第一个图需要查找6次,而第...
  • u013028876
  • u013028876
  • 2015年09月24日 16:07
  • 1301

软考嵌入式系统工程师知识点整理(嵌入式操作系统)

嵌入式系统的特点: 以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统 任务间同步机制有: 信号量 事件 信号 操作系统的文件系统的...
  • wzz4420381
  • wzz4420381
  • 2016年01月17日 19:02
  • 785

软考--设计模式

软考结束了,对于设计模式这一块的整理还需要再做一下。       一、分类:       (1)创建型         查资料:社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的...
  • u013047584
  • u013047584
  • 2015年11月08日 15:56
  • 1845

数据结构之---C语言实现平衡二叉树(AVL树)

数据结构之---C语言实现平衡二叉树(AVL树)
  • u012965373
  • u012965373
  • 2015年09月02日 00:25
  • 2826

平衡二叉树的好处

二叉排序树是一种比较有用的折衷方案。     数组的搜索比较方便,可以直接用下标,但删除或者插入某些元素就比较麻烦。     链表与之相反,删除和插入元素很快,但查找很慢。     二叉排序树就...
  • shuilansedeyuer
  • shuilansedeyuer
  • 2014年05月25日 15:04
  • 2159

计算机软考证书英文名称完全翻译指南

计算机软考证书英文名称完全翻译指南
  • zhangziliang09
  • zhangziliang09
  • 2013年10月12日 08:47
  • 2071

【软考】-数据库

学习是一个反复的过程。循序渐进,遵循i+1的原则。遵循28定律,把主要精力放在重点上。这些都是我们学习的秘诀,又一次践行与体会。...
  • u013028876
  • u013028876
  • 2015年09月13日 23:50
  • 975

60天高效通过软考高级实战复习攻略(干货)

题记60天,对于上班族来说,只有晚上和周末时间,细算下,有效复习时间少得可怜。如果全力以赴且有一定计算机基础、项目管理经验的话,可以!否则,会比较难。软考信息系统项目管理工程师(信管高级)涉及9大知识...
  • wojiushiwo987
  • wojiushiwo987
  • 2017年07月13日 23:38
  • 4710

2016年末嵌入式软考总结

有时候人的脚步总是会慢于自己的想法。自从大学毕业之后就一直有想蹭着对于大学学的知识还有印象就赶紧把软考中级给考了,但是工作之后总是会找各种理由推脱、说服自己,最后导致软考报名一错再错过。最终还是咬牙跺...
  • u013566528
  • u013566528
  • 2017年04月22日 13:47
  • 406
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【软考】---平衡二叉树
举报原因:
原因补充:

(最多只允许输入30个字)