<JavaDS> 二叉树的五个重要性质

目录

一、二叉树的概念

1.1 基本概念

1.2 满二叉树和完全二叉树

二、二叉树的五个重要性质

2.1 求二叉树的某一层最大节点数量

2.2 求整棵二叉树的最大节点数量

2.3 度不相同的节点之间的数量关系

2.4 求二叉树的层数

2.5 求父节点和子节点 


一、二叉树的概念

1.1 基本概念

        二叉树是一种数据结构,是由0个到多个节点组成的树形结构集合。

        二叉树中每个节点最多有两个子节点,通常称为左子节点和右子节点。

        二叉树可以有效地表示具有层次结构的数据,例如树状数据或文件系统。


1.2 满二叉树和完全二叉树

        当二叉树中除了叶子节点,其他每个节点的度都为 2,则此二叉树称为满二叉树,如下图:

满二叉树

        当一棵二叉树最后一层节点从左到右依次分布,没有空节点,且忽略最后一层节点后为满二叉树,则此二叉树被称为完全二叉树,如下图:

完全二叉树

        满二叉树是一种特殊的完全二叉树。 


二、二叉树的五个重要性质

2.1 求二叉树的某一层最大节点数量

性质描述:若一棵二叉树不为空,规定该二叉树根节点为第1层,则该树第 i 层的节点数量最多为 2^{i-1}(i>0) 个。


2.2 求整棵二叉树的最大节点数量

性质描述:若一棵二叉树不为空,规定该二叉树根节点为第1层,则拥有 i 层的整棵二叉树的节点数量最多为2^{i}-1(i>=0)个。


2.3 度不相同的节点之间的数量关系

        节点含有子树的个数,称为该节点的度。

        有两个子树的节点,度为2;有一个子树的节点,度为1;没有子树的节点,度为0,又称为叶子节点。

        一棵二叉树有 n 个节点,将度为2的节点表示为 n2 ,将度为1的节点表示为 n1 ,将度为0的节点表示为 n0 ,则有以下等式:

等式一:n = n0 + n1 + n2 

        节点与节点之间相连的线称为边,节点的边的数量和度相同

        假设一棵二叉树有 n 个节点,则这棵二叉树将有 n - 1 条边

        一棵二叉树中,度为 0 的节点 n0 没有边,度为 1 的节点 n1 边的数量和节点相同,即有 n1 条边;度为 2 的节点 n2 边的数量是节点数量的两倍,即有 2*n2 条边;则一棵二叉树中边的数量有以下等式:

等式二:n - 1 = n1 + 2 * n2

         将以上两条等式合并,得到 n0 + n1 + n2 – 1 = n1 + 2*n2 ,化简后得到以下等式:

等式三:n0 = n2 + 1


2.4 求二叉树的层数

性质描述:一棵具有 n 个节点的完全二叉树,其层数等于log_2{(n+1)}向上取整,或log_2{(n)}+1向下取整。

推导过程: 

        根据第二个性质,层数为 i 的二叉树,节点数量 n = 2^{i}-1(i>=0) ,则可推导得出 i = log_2{(n+1)} 。


2.5 求父节点和子节点 

        一棵具有 n 个节点的完全二叉树,按照从上到下,从左到右的顺序,从 0 开始按顺序给所有节点编号,则对于任意一个节点 i ,有以下性质:

  • i = 0 时,i 为根节点,没有父节点;
  • i > 0 时,父节点的序号为 (i - 1) / 2 ;
  • 当 2 * i + 1 < n 时,代表节点 i 的左子节点是存在的,且该左子节点的序号为 2 * i + 1 ;否则代表节点 i 没有左子节点;
  • 当 2 * i + 2 < n 时,代表 i 节点的右子节点是存在的,且该右子节点的序号为 2 * i + 2 ; 否则代表节点 i 没有右子节点;


( 哈哈哈~~ 文章结束!) 

( 看到这里,如果有为各位帅哥美女提供一点点灵感,请点一个小小的赞哦,比心💖💖💖 )

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值