博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构中的树
阅读量:5950 次
发布时间:2019-06-19

本文共 818 字,大约阅读时间需要 2 分钟。

树:树是n(n≥0)个节点的有限集合。当n=0是称为空树。在任意一棵非空树中,(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......,其中每个集合本身又是一棵树,并且称为根的子树。

二叉树:二叉树是n(n≥0)个节点的有限集合。该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

二叉树的特点:1、每个结点最多只有两棵子树;

         2、左子树和右子树是有顺序的,次序不能任意颠倒;

         3、即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。

二叉排序树:又称二叉查找树,它或者是一棵空树,或者是具有下列性质的二叉树:

      1、若它的左子树不为空,则左子树上所有节点的值均小于它的根结点的值;

      2、若它的右子树不为空,则右子树上所有结点额值均大于它的根结点的值;

      3、它的左子树和有子树分别也是二叉排序树。

平衡二叉树(AVL树):平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。

平衡二叉树要么是一棵空树,要么它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor)。

  平衡二叉树,又称AVL树。它或者是一棵空树,或者是具有下列性质的树:

  1) 具备二叉排序树的所有性质;

  2) 左子树和右子树深度差的绝对值不超过1;
  3) 左子树和右子树都是二叉平衡树。

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

 

转载于:https://www.cnblogs.com/heyijing/p/4743655.html

你可能感兴趣的文章
Eclipse安装adt插件后之后看不到andorid manger
查看>>
Kafka服务端脚本详解(1)一topics
查看>>
Zookeeper 集群安装配置,超详细,速度收藏!
查看>>
js中var self=this的解释
查看>>
js--字符串reverse
查看>>
面试题
查看>>
Facebook 接入之获取各个配置参数
查看>>
android ant Compile failed; see the compiler error
查看>>
ios webView 加载pdf
查看>>
PHP开源订餐系统
查看>>
Single Number
查看>>
linux分区问题
查看>>
MYSQL_使用外键约束(constraint)或触发器(trigger)来进行级联更新、删除
查看>>
Maven构建web项目在Eclipse中部署的几种方法
查看>>
[多文件上传三]利用UrlEncodedFormEntity表单实现
查看>>
左边邮件类型
查看>>
怎么能确保分类中的方法不和原始类的方法冲突?
查看>>
Python-pip, RubyGems, node-npm使用国内镜像加速下载
查看>>
C 语言静态变量的作用域和生存周期(ZZ)
查看>>
C++是可以在类里面定义和类名相同的变量的
查看>>