栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构 14-二叉树的概念与性质

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构 14-二叉树的概念与性质

目  录

1. 二叉树的定义

1.1 有序树和无序树之分

1.2 二叉树的定义

2. 二叉树的性质

2.1 非空二叉树上叶节点数等于双分支节点数加 1

2.2 非空二叉树上第 i 层上至多有 个节点,这里应有 i≥ 1 

2.3 高度为 h 的二叉树至多有 -1 个节点(h>1) 

3. 特殊的二叉树

3.1 满二叉树

3.1.1 满二叉树定义

3.1.2 满二叉树特点

3.2 完全二叉树

3.2.1 完全二叉树定义

3.2.2 完全二叉树特点

3.2.3 完全二叉树性质

前面说了很多树的性质,就是为了引出我们最常见的一种树---二叉树。

1. 二叉树的定义

1.1 有序树和无序树之分

        前面说了树,一个节点可能有多个分支节点,这些分支节点之间可以是有序的,也可以是无序的。分支节点有序的树,即有序树。

        有序树:从左到右每一个子树都是有次序的。

        无序树:从左到右每一个子树都是无次序的。这种树称为无序树,也称为自由树

1.2 二叉树的定义

        二叉树,即度为 2 的树,它的每个节点的度都不大于 2,在一般使用过程中,我们认为它是有序的树!它的两个分支,分别是左分支、右分支,是有顺序的。

2. 二叉树的性质

2.1 非空二叉树上叶节点数等于双分支节点数加 1

        二叉树中可以将分支节点分为:度数为 0 的叶子节点数 a,度数为 1 的单节点数 b,度数为 2 的双分支节点数 c,树中的节点总数 n = a+b+c。

        之前树的性质 1:树中的节点数等于所有节点的度数加 1,二叉树也是一种树,也满足这一条件。而一个节点的度就是它有几个分支。根据这一点,可以得到 n=b+2*c+1。

        即 a+b+c=b+2*c+1     ===>  a=c+1

        从而得到:非空二叉树上叶节点数等于双分支节点数加 1

2.2 非空二叉树上第 i 层上至多有 个节点,这里应有 i≥ 1

        根据树的性质 2:度为 m 的树中第 i 层 ( i≥1 ) 上至多有个节点。

        二叉树的度为 2,那么非空二叉树上第 i 层上至多有 个节点,这里应有 i≥ 1 

2.3 高度为 h 的二叉树至多有 -1 个节点(h>1)

        根据树的性质 3:h>1 时候,高度为 h的 m 次树至多有 个节点。

        二叉树的度为 2,那么 高度为 h 的二叉树至多有 -1 个节点(h>1) 

3. 特殊的二叉树

3.1 满二叉树

3.1.1 满二叉树定义

        在一棵二叉树中,如果所有分支节点都有左 孩子节点和右孩子节点,并且叶节点都集中 在二叉树的最下一层,这样的二叉树称为满二叉树。如下图,就是一个高度为 3 的满二叉树。

3.1.2 满二叉树特点
  1. 叶子节点都在最下一层;高度为 h 的二叉树叶子节点个数为 
  2. 只有度为 0 和度为 2 的节点;高度为 h 的二叉树节点总数是 
  3. 如果对满二叉树编写序号,从上而下,从左而右,序号从 1 开始,那么如果满二叉树的个数是 n,那么序号小于 的节点为分支节点, 否则为叶子节点。

3.2 完全二叉树

3.2.1 完全二叉树定义

        如果二叉树中最多只有最下面两层的节点的度数可以小于2,并且最下面一层的叶节点都依次排列在该层最左边的位置上,则这样的二 叉树称为完全二叉树。

        如下图,就是一个高度为 3 的完全二叉树。可以看出,完全二叉树是去接近满二叉树的一个中间状态

3.2.2 完全二叉树特点
  1. 叶子结点只能在层次最大的两层上出现:
  2. 最大层次上的叶子结点,都依次排列在 该层最左边的位置上
  3. 如果有度为 1 的节点,只能有一个,且 该节点只有左孩子,没有右孩子
  4. 按层编号后,一旦出现某节点(编号为i) 为叶子结点或只有左孩子,则编号大于i 的节点,均为叶子节点
  5. 完全二叉树中一旦 n 确定,其树形就确定了,可以计算出高度 h 以及叶子节点数

3.2.3 完全二叉树性质

        对完全二叉树中编号为 i 的节点(1≤i≤n,n≥1,n 为节点数),会发现有以下数学特性

  1. 若 n 为奇数,则每个分支节点都既有左孩子节点, 也有右孩子节点;
  2. 若 n 为偶数,则编号最大的分支 节点只有左孩子节点,没有右孩子节点,其余分支节点都有左、右孩子节点。
  3. 编号为 i 的节点有左孩子节点,则左孩子节点的编号为 2i;若编号为 i 的节点有右孩子节 点,则右孩子节点的编号为 (2i+1)。也可以根据以上特性,从当前孩子节点反推父母节点。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号