树形结构——二叉树

news2024/12/23 5:57:57
  1. 前言
    前面的章节我们介绍了两种重要的数据结构,数组和链表,由于他们各自的特性使得他们的优缺点非常分明,在查询速度和插入速度上顾此失彼,不能兼顾,那么有没有一种数据结构可以同时高效的完成插入和查询操作呢,答案当然是肯定的,今天我们就来了解 —— 树结构。
    在这里插入图片描述

  2. 树的定义及常用概念
    顾名思义,树结构就是以树为原型的数据结构,用来模拟具有树形结构的数据集合。大自然的鬼斧神工让人不得不惊叹它的神奇之力,如何最高效的为每一片叶子供给养分,同时还可以不断的抽枝发芽分支出新的枝干,大树为它的枝叶们提供了最科学的结构基础。而我们也仿照大自然中树的结构,构建了计算机领域里的树形结构。下面我们先定义一些有关树形结构用到的概念。

  • 节点:树结构中用于存储数据元素的部分称为节点。
  • 根节点:我们的树是倒挂的,因此最上面的节点我们称之为根节点。
  • 边:连接元素之间的引用我们称之为边。边是有方向的,从上游节点指向下游节点。
  • 路径:顺着边,将经过的节点按顺序记录下来,称之为路径。路径上节点的个数称之为路径的长度。
  • 父节点:节点的上游节点称之为父节点,通过指向某一节点的边可以找到它的父节点。
  • 子节点:节点的下游节点称之为子节点,通过向下发出的边可以找到它的子节点。
  • 兄弟节点:具有相同父节点的节点之间互称为兄弟节点。
  • 叶节点:没有子节点的节点称之为叶节点,它是树在这个路径上的末端。
  • 层次:根节点为第一层,根的所有子节点为第二层,第二层的所有子节点组成第三层,以此类推。
  • 深度:从根节点到某一个节点的路径长度称之为该节点的深度。根节点的深度为 0。
  • 高度:从某一节点出发到最远的叶节点的路径长度称之为该节点的高度。叶节点的高度为 0。

在这里插入图片描述

  1. 二叉树
    当一个树形结构上的每个节点最多只有两个子节点时,这个树可以称之为二叉树。二叉树根据节点和元素的分布又可以细分很多类型,比如:
  • 满二叉树:除叶节点外,每一个节点都有两个子节点。

  • 完全二叉树:当我们从上至下,从左至右,按照二叉树的结构依次排满每一个节点的时候,这个树就是完全二叉树,其中当最下面一层的叶节点排满时,这个完全二叉树同时也是满二叉树。
    在这里插入图片描述

  • 二叉搜索树:当一个节点有左子节点时,左子树上的所有节点一定小于它,同时当一个节点有右子节点时,右子树上的所有节点一定大于它,这个树称之为二叉搜索树,或者二叉查找数。通过这个特殊的约定,我们得到了一个规律性很强的树形结构,给我们做进一步的搜索查找提供了很大的便利。
    在这里插入图片描述

  1. 遍历树
    对树上节点的访问顺序其实是一样的,但是输出顺序不同,根据输出顺序我们将遍历分为三种:前序遍历、中序遍历、后序遍历。
  • 前序遍历的规则是根节点 > 左子树 > 右子树;
    在这里插入图片描述

  • 中序遍历的规则是左子树 > 根节点 > 右子树;

在这里插入图片描述

  • 后序遍历的规则是左子树 > 右子树 > 根节点;
  • 在这里插入图片描述
  1. 小结
    本节我们学习了树形结构,我们要清晰掌握常用的概念,知道树是由节点和边构成的一种抽象数据类型,了解二叉树的定义和特点,知道二叉树的每个节点最多有两个子节点,说出几种最常见的二叉树类型比如满二叉树和完全二叉树,了解当二叉树中任意一个节点下的左子树的所有节点都比该节点小,右子树的所有节点又都比该节点大时,这个树称之为二叉搜索树。此外大家要根据前序遍历、中序遍历、后序遍历的规则,结合动图掌握二叉树遍历的思路和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专访 | 刘嘉松:开源,互惠且共赢

本文整理自对 2022 开源之夏 OpenMLDB 社区贡献者刘嘉松同学的采访,欢迎大家关注~ OpenMLDB:可以先请你介绍一下你自己吗? 刘嘉松:我叫刘嘉松,是中南大学计科专业的一名本科生,目前大四,未来将继续在中南…

Hello 2023 D. Boris and His Amazing Haircut

原题链接:Problem - D - Codeforces 题意: 给定长度为 n 的数组 A ,代表 Boris 现在的头发长度,和一个长度为 n 的数组 B ,代表他希望的发型的头发长度。理发师手里有 m 把剪刀,每个都只能用一次&#xff…

计算机硕士论文,盲审的老师都很严吗? - 易智编译EaseEditing

首先,学位论文必须论证严谨 对于一个结果的解读,先老老实实的把得到什么结果讲一遍,基于这个所得出的结论说一说,最后,来个非谓语的短句吹一吹重要性或提示意义。 这其实是有套路的一个句子写下来。但是,在…

AC7811-ACMP模拟比较器

在无感的BLDC方波控制中,AC7811没办法再直接通过PWDT模块检测霍尔信号了。 所以需要先进行ACMP模块的初始化配置,使能ACMP模块正常工作后,ACMP会对输入的三相反电动势与电机中电电压进行轮询模拟,得到各相反电动势过零点&#xf…

分享5款有趣但或许不那么实用的软件

今天我想分享几个有趣但或许不那么实用的软件,各位喜欢的朋友可以自行下载呢。 1.软件音量设置——EarTrumpet 听音乐、看视频、玩游戏,在各应用切换过程中,你可能会频繁调整系统音量大小,以适应自己的耳朵。而 EarTrumpet 则可…

AIGC:BAT、抖快的新掘金口?

配图来自Canva可画 AI辅助绘画估值超十万? 12月28日,山东人民出版社看中一位4岁女孩用百家号AI作画创作的AI绘本《超能外星战队》,认为该画价值超十万元且有出版意向。与此同时,“AI作画”像病毒般在各大短视频平台蔓延&#xf…

年度盘点丨2022年,7大关键词彰显用友成长型企业数智力量

导读:这一年,他们用卓越成绩证明自己,用产品创新回馈客户,用实力开启了中国成长型企业数智化产业的逆袭之路! 2022年,企业级数智化产业经历了翻天覆地的变化。 曾经万家追捧的“舶来品”在成长型企业的主…

项目管理中,如何对各种文件进行统一版本管理?

不知道你在工作中是否也遇到过这样的问题:1、文件先存一个位置,等晚点再整理,结果过了一段时间,就变成了这样:2、想从电脑中找一份重要材料,要花费很长时间,有时查找一通,却一无所获…

Docker中MySQL主从复制

MySQL主从复制 主从搭建步骤 新建主服务器容器实例3307 docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD…

SAP年结账务调整过程中的业务改错处理心得

昨天遇到一个问题在这里分享一下。大家知道刚刚跨年,财务还在做一些后续调整。在业财一体化的系统中,这种调整往往涉及到两个方向,财务端去调,还是业务端去调。但大家要了解一个前提。即然需要做调整,肯定是业务端出错…

IPC(IP CAMERA)

IPC是IP Camera的缩写词,IP是网际协定,Camera是照相机、摄影机,IP Camera顾名思义就是网路摄像机,它是一种由传统摄像机与网路技术结合所产生的新一代摄像机。 注:NVR,全称Network Video Recorder&#xff…

有哪些设备管理软件值得推荐?

有哪些设备管理软件值得推荐? 别滑了, 翻遍全网,好用的设备管理软件都给你整理好了,白嫖的好事可千万别错过。 要知道好用的设备管理软件,可是能为企业持续、稳定、快速发展,及提高经济效益发挥重要作用。…

机器学习实战教程(九):支持向量机实战篇

一、前言 上篇文章讲解的是线性SVM的推导过程以及简化版SMO算法的代码实现。本篇文章将讲解SMO算法的优化方法以及非线性SVM。 本文出现的所有代码,均可在我的github上下载,欢迎Follow、Star:点击查看 二、SMO算法优化 在几百个点组成的小规…

数据的存储

数据的存储 文章目录数据的存储一、数据类型二、整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3几个经典关于内存存储的例子三、浮点型在内存中的存储3.1 一个令你惊呆的例子3.2 浮点数存储规则一、数据类型 整形家族: char: unsigned char&a…

redhat9---MySQL8练习

目录 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工资和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表,名为工作日…

anaconda 常用命令

在windows winR cmd中运行 或者在 linux的终端terminal中运行 1.查看conda版本 conda --version 2.查看conda现有源 conda config --show-sources 添加国内清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config…

谷粒学院——Day16【统计分析】

❤ 作者主页:Java技术一点通的博客 ❀ 个人介绍:大家好,我是Java技术一点通!( ̄▽ ̄)~* 🍊 记得关注、点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习,共同进步!&am…

会通转债,大元转债上市价格预测

会通转债基本信息转债名称:会通转债,评级:AA-,发行规模:8.3亿元。正股名称:会通股份,今日收盘价:8.61,转股价格:9.33。当前转股价值 转债面值 / 转股价格 * …

知识管理在商业模式创新中的重要性

我们生活在一个以知识为基础的经济中,与实物资产相比,数据和信息被认为是宝贵的资产。组织正在收集更多的数据,并对其进行处理,以转化为可操作的洞察力。这些洞察力是商业决策和推动战略举措的有力工具。这些洞察力需要被捕获并在…

智慧农业大田解决方案LoRa的LPWAN低功耗广域网无线通信SoC芯片ASR6601

智慧农业大田解决方案利用传感设备、自动化控制设备、气象站实时监测采集田间土壤墒情、气象信息、作物长势信息,主要包含气象监测系统、土壤监测系统、虫情监测系统、水肥一体化智慧灌溉系统、专家服务系统、农产品溯源系统。智慧农业大田解决方案可以准确掌握大田…