数据结构:二叉树的基本概念

news/2025/1/12 11:57:42/

文章目录

  • 1. 二叉树的定义
  • 2. 二叉树的特点
  • 3. 特殊二叉树
    • 斜树
    • 满二叉树
    • 完全二叉树
  • 4. 二叉树的性质

1. 二叉树的定义

如果我们猜一个100以内的数字,该怎么猜才能理论最快呢?
第一种方式:从1,2一直猜到100, 反正数字都是100以内,总能猜到的
第二种方式:先猜50,如果比结果小,猜75;如果比结果大,猜25.最后也能猜到对应的值

很显然,第二种方式明显优于第一种方式.第一种方式的时间复杂度是 O ( N ) O(N) O(N),而第二种方式的时间复杂度是 O ( l o g N ) O(logN) O(logN).

对于这种在某个阶段都是两种结果的情形,比如开和关,0和1,真和假等等,都适合用树状结构来建模,而这种树就是之前说的很优秀的树状结构,叫做二叉树.


二叉树(Binary Tree)是n(n>=0)个结点的有限集合.

  • 该集合或者为空集(称为空二叉树).
  • 或者由一个根节点和两棵互不相交,分别称为根节点的左子树和右子树的二叉树组成.

在这里插入图片描述

2. 二叉树的特点

根据上面的二叉树的图片,我们可以得到二叉树的以下特点

  • 二叉树不存在度大于 2 的结点
    二叉树每个结点最多度为2,即最多有左右两个子树,不存在或者只有一颗子树是可以的.
  • 二叉树的子树有左右之分,次序不能随意颠倒,因此二叉树是有序树
    正如人的左脚和右脚不能随意颠倒,二叉树也分为左子树和右子树的;
    即使某个结点只有一棵子树,也是要分清楚是左子树还是右子树的

在这里插入图片描述

上图的两棵树虽然是同一棵树,但是不是同一棵二叉树


二叉树具有以下五种基本形态,任意的二叉树都是由下面的情况复合而成的
在这里插入图片描述

  • 空二叉树
  • 只有一个根结点
  • 根节点只有左子树
  • 根节点只有右子树
  • 根节点既有左子树又有右子树

如果只从形态上考虑,三个结点的树只有两种情况,就是下图的树1和后面四个中的任意一种.
但是对于二叉树这个有序树而言,左右子树是由区别的,所以下面五种情况都表示不同的二叉树.
在这里插入图片描述


现实中的二叉树很漂亮,正如在数据结构中,二叉树这个树形结构也占据很重要的地位一样,有时候数学的美和大自然的美都是相通的.

在这里插入图片描述

3. 特殊二叉树

斜树

所有的结点都只有左子树的叫左斜树,所有的结点都只有右子树的叫右斜树.
这两者统称为斜树.

在这里插入图片描述

其实,线性表就是一种特殊的斜树,但是两者的逻辑结构还是不一样的,线性表是一对一线性结构的,而斜树是一对多树形结构的


满二叉树

在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有的叶子都在同一层上,这样的二叉树称为满二叉树

在这里插入图片描述

满二叉树有以下特点

  • 叶子结点只能出现在最下一层
  • 非叶子结点的度一定是 2
  • 满二叉树的结点个数最多,叶子数最多.如果一个满二叉树有 K 层, 那么一共有 2 k − 1 2^k-1 2k1个结点

完全二叉树

对一个具有 n 个节点的二叉树按层序编号, 如果编号为 i( 1 ⩽ i ⩽ n 1\leqslant i \leqslant n 1in)的结点与同样深度的满二叉树中编号为 i 的结点在二叉树中的位置完全相同, 则这颗二叉树称为完全二叉树.

在这里插入图片描述

最重要的是按层序编号
例如下面的三个二叉树,就不是完全二叉树.它们对应满二叉树的结点编号缺少了.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

总而言之就是,除了最后一层的不满并且最后一层的从第一个结点开始是连续的,这就是完全二叉树.

完全二叉树有以下特点:

  • 叶子结点只能出现在最下两层
  • 最下层的叶子一定集中在左部连续位置
  • 倒数两层,若有叶子结点,一定都在右部连续位置
  • 如果结点度为1, 则该结点只有左孩子
  • 同样节点数的二叉树,完全二叉树的深度最小

如果有h层, 那么完全二叉树的结点数为 [ 2 h − 1 , 2 h − 1 ] [2^{h-1}, 2^h - 1] [2h1,2h1]

4. 二叉树的性质

  1. 若规定根节点的层数为 1, 则一棵非空二叉树的第 i 层最多有 2 i − 1 2^{i-1} 2i1个结点.
  1. 若规定根节点的层数为 1, 则深度为 h 的二叉树的最大结点数是 2 h − 1 2^h - 1 2h1.
  1. 对任何一棵二叉树,如果度为 0 的叶子结点个数为 n 0 n_0 n0, 度为 2 的分支节点个数为 n 2 n_2 n2, 则有 n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1.
  1. 若规定根节点的层数为 1 , 具有n个结点的满二叉树的深度, h = l o g 2 n + 1 log_2n + 1 log2n+1.
  1. 对于具有 n 个结点的完全二叉树, 如果按照从上至下, 从左至右的数组顺序对所有结点开始从 0 编号, 则对于序号为 i 的结点有:
  • 若 i > 0, i位置结点的双亲序号: (i-1)/2; i=0, i为根节点编号, 无双亲结点.
  • 若 2i+1<n, 左孩子序号: 2i+1, 2i+1 >=n 则无左孩子
    i > 0, i位置结点的双亲序号: (i-1)/2**; i=0, i为根节点编号, 无双亲结点.
  • 若 2i+1<n, 左孩子序号: 2i+1, 2i+1 >=n 则无左孩子
  • 若 2i+2<n, 右孩子序号: 2i+2, 2i+2 >=n 则无右孩子

http://www.ppmy.cn/news/1128265.html

相关文章

fdbus之CFdbSession类

背景介绍 CFdbSession 这个类有着很重要的作用&#xff0c;session的中文含义就是会话&#xff0c;按照我的理解&#xff0c;一个会话就是一个连接&#xff0c;一个连接就对应一个socket。这个类实现了网络通信的细节&#xff0c;或者说这个类是网络通信功能入口类&#xff0c…

CSS详细基础(三)复合选择器

前两章介绍了CSS中的基础属性&#xff0c;以及一些基础的选择器&#xff0c;本贴开始介绍复合选择器的内容~ ​ 在 CSS 中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形…

Java列表查询Long(id)到前端转换出错

Java列表查询Long到前端转换出错 问题描述排查思路思路一&#xff1a;SQL问题思路二&#xff1a;Long类型转换出错 解决方法 问题描述 做了一个列表查询功能&#xff0c;本来不应该有啥大问题的&#xff0c;但是往往事与愿违。 诶&#xff0c;你越觉得不可能出问题&#xff0c…

15. RocketMQ 消息队列

Spring Cloud 微服务系列文章&#xff0c;点击上方合集↑ 1. 简介 RocketMQ是一款开源的分布式消息中间件&#xff0c;它具有高可靠性、高性能和可伸缩性&#xff0c;被广泛用于构建分布式系统中的可靠消息传递服务。 官网地址&#xff1a; https://rocketmq.apache.org/ 2…

Final Draft 12.0.9(简单好用的剧本写作工具)

Final Draft 12是一款专为编剧打造的强大写作工具&#xff0c;它将您的创意转化为精彩剧本的过程变得简单而高效。以下是推荐Final Draft 12的一些理由&#xff1a; 界面设计&#xff1a;Final Draft 12采用了简洁直观的界面设计&#xff0c;使得用户可以专注于创作&#xff0…

HarmonyOS非线性容器特性及使用场景

非线性容器实现能快速查找的数据结构&#xff0c;其底层通过hash或者红黑树实现&#xff0c;包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七种。非线性容器中的key及value的类型均满足ECMA标准。 HashMap HashMap可用来存储具有关联关…

【HTTP版本】HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0等重点知识汇总

目录 HTTP/1.1 的优点有哪些&#xff1f; HTTP/1.1 的缺点有哪些&#xff1f; HTTP 1.0&#xff0c;1.1&#xff0c;2.0&#xff0c;3.0 的主要区别 HTTP/1.1 相比 HTTP/1.0 提高了什么性能&#xff1f; HTTP/2 做了什么优化&#xff1f; HTTP/3 做了哪些优化&#xff1f…

vscode 打开后 默认terminal power shell 报错 名为“.C”的驱动器不存在。

这是 默认terminal power shell 打开报的错 Test-Path : 找不到驱动器。名为“.C”的驱动器不存在。 所在位置 C:\Users\HUAWEI\Documents\WindowsPowerShell\profile.ps1:4 字符: 5 If (Test-Path "C:\Users\HUAWEI\AppData\Local\Temp\_MEI319962\Scripts\ ... …