数据结构之二叉树(图解➕源代码)

前言

哈喽,大家好,这里是面包园的知识分享,在上一篇文章中我们学习了树的相关概念,了解了树形结构,那今天让我们进一步学习树的特殊结构——二叉树。

一、什么是二叉树?

二叉树的概念:根节点➕左子树➕右子树
在这里插入图片描述
注意⚠️⚠️:

  1. 二叉树节点的度是≤2的;
  2. 二叉树的子树有左右之分,先左后右;这是因为跟我们数组有关,数组可以变成完全二叉树的结构。

二叉树的几种情况:

正因为二叉树的度是≤2的,所以我们可以分出一下几种情况:
  1. 空树(无根节点)
  2. 只有根节点
  3. 只存在左子树
  4. 只存在右子树
  5. 左右子树都存在

在这里插入图片描述

现实中的二叉树

相信大家在生活中遇到这样的树,一定会拜一拜,哈哈哈哈,这可是我们程序员的灯塔呀!!!
在这里插入图片描述
在这里插入图片描述

二、特殊的二叉树

2.1 满二叉树

满二叉树的概念: 一般我们管每个节点的度都是2的二叉树叫做满二叉树

如图:满二叉树就是每个节点都有两个孩子节点,除了最后的一层的叶子结点。
在这里插入图片描述

2.2 完全二叉树

完全二叉树的概念:在满二叉树的基础上,可以去除任意个数的叶子结点。也就是说完全二叉树就是在最后一层上有改动,其他层都是满的。
在这里插入图片描述

三、二叉树的性质

  1. 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2^(i-1)个结点
  2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^h-1
  3. 对任何一棵二叉树, 设度为0的叶结点个数为 n0 , 度为2的分支结点个数为 n2 ,都有 n0=n2 +1
  4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,h= log(n+1) (以2为底)

重要性质!!!

我们的数组其实是跟完全二叉树一一对应的,所以我们可以利用数组的性质找到完全二叉树的双亲结点和孩子结点的关系:
在这里插入图片描述

四、练习题

  1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )
    A 不存在这样的二叉树
    B 200
    C 198
    D 199
  2. 下列数据结构中,不适合采用顺序存储结构的是( )
    A 非完全二叉树
    B 堆
    C 队列
    D 栈
  3. 在具有 2n 个结点的完全二叉树中,叶子结点个数为( )
    A n
    B n+1
    C n-1
    D n/2
  4. 一棵完全二叉树的节点数位为531个,那么这棵树的高度为( )
    A 11
    B 10
    C 8
    D 12
  5. 一个具有767个节点的完全二叉树,其叶子节点个数为()
    A 383
    B 384
    C 385
    D 386

答案:
1.B
2.A
3.A
4.B
5.B

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157702.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++的OpenCV】第十四课-OpenCV基础强化(二):访问单通道Mat中的值之at()、ptr()、iscontinuous()

🎉🎉🎉 欢 迎 各 位 来 到 小 白 p i a o 的 学 习 空 间 ! \color{red}{欢迎各位来到小白piao的学习空间!} 欢迎各位来到小白piao的学习空间!🎉🎉🎉 目录 一 、 访 问 的…

【机器学习】五、贝叶斯分类

我想说:“任何事件都是条件概率。”为什么呢?因为我认为,任何事件的发生都不是完全偶然的,它都会以其他事件的发生为基础。换句话说,条件概率就是在其他事件发生的基础上,某事件发生的概率。 条件概率是朴…

企业内部外网向内网传输文件如何实现高效安全?

随着信息技术的发展,企业内部外网隔离已成为一种常见的网络安全措施,旨在防止外部攻击者入侵内部网络,保护企业的核心数据和业务系统。然而,企业内外网隔离也带来了一些问题,其中之一就是如何实现内外网之间的文件传输…

Hadoop PseudoDistributed Mode 伪分布式

Hadoop PseudoDistributed Mode 伪分布式加粗样式 hadoop101hadoop102hadoop103192.168.171.101192.168.171.102192.168.171.103namenodesecondary namenoderecource managerdatanodedatanodedatanodenodemanagernodemanagernodemanagerjob historyjob logjob logjob log 1. …

【深度学习】pytorch——实现CIFAR-10数据集的分类

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 往期文章: 【深度学习】pytorch——快速入门 CIFAR-10分类 CIFAR-10简介CIFAR-10数据集分类实现步骤一、数据加载及预处理实现数据加载及预处理归一化的理解访问数据集Dataset对象Dataloader对象 二、…

UI设计一定不能错过的4款常用工具

虽然设计审美很重要,但软件只是一种工具,但就像走楼梯和坐电梯到达顶层一样,电梯的效率显然更高,易于使用的设计工具也是如此。让我们了解一下UI设计的主流软件,以及如何选择合适的设计软件。 即时设计 软件介绍 即…

【数据结构复习之路】数组和广义表(严蔚敏版)万字详解主打基础

专栏:数据结构复习之路 复习完上面三章【线性表】【栈和队列】【串】,我们接着复习数组和广义表,这篇文章我写的非常详细且通俗易懂,看完保证会带给你不一样的收获。如果对你有帮助,看在我这么辛苦整理的份上&#xf…

Go Metrics SDK Tag 校验性能优化实践

背景 Metrics SDK 是与字节内场时序数据库 ByteTSD 配套的用户指标打点 SDK,在字节内数十万服务中集成,应用广泛,因此 SDK 的性能优化是个重要和持续性的话题。本文主要以 Go Metrics SDK 为例,讲述对打点 API 的 hot-path 优化的…

《AI时代架构师修炼之道:ChatGPT让架构师插上翅膀》

本专注于帮助架构师在AI时代 实现晋级、提高效率的图书 书中介绍了如何使用 ChatGPT 来完成架构设计的各个环节 并通过实战案例展示了ChatGPT在实际架构设计中的应用方法 关键点 1.架构设计新模式:让架构设计更高效、更快捷、更完美。 2.全流程解析:涵盖…

物联网整体框架有哪些层面?

物联网是当前非常火热的话题,各个行业对物联网的关注和投入力度也很大,一些互联网巨头都在紧锣密鼓的布局物联网产业,抢占市场先机。 物联网的整体构架大致可以分为以下四个层面: 1.感知识别层 感知层是物联网整体架构的基础&…

项目级asp.net框架的LIMS实验室管理系统源码

LIMS可用于管理完整的实验程序,从样品登记到检验、校核、审核到最终批准报告,建立在过程质量控制的基础上,对检测流程进行有效全面的管理,对影响质量的人、机、料、法、环因素加以控制,同时为质量改进提供数据依据。进…

Azure - 机器学习:使用 Apache Spark 进行交互式数据整理

目录 本文内容先决条件使用 Apache Spark 进行交互式数据整理Azure 机器学习笔记本中的无服务器 Spark 计算从 Azure Data Lake Storage (ADLS) Gen 2 导入和整理数据从 Azure Blob 存储导入和处理数据从 Azure 机器学习数据存储导入和整理数据 关注TechLead,分享AI…