【二叉树】二叉树的首次认识:名词理解、种类、存储结构

【数据结构】详解二叉树|图 最优二叉树又称哈夫曼树,是一类带权路径长度最短的树。路径:树中一个结点到另一个结点之间的通路。结点的路径长度:路径上的分支数树的路径长度:根结点到达每一个叶子结点之间的路径长度之和权:结点代表的值结点的带权路径长度:该结点到根结点之间的路径长度乘以该结点的权值树的带权路径长度(树的代价):树的所有叶子结点的带权路径长度之和哈夫曼树的求法:给出一组权值,将其中最小的两个权值作为叶子结点,其和作为父结点,组成二叉树,然后删除这两个叶子结点权值,将父结点的值添加到这组权值中。 阅读详情

本文概览:

  1. 本文简要叙述了二叉树的定义和基本名词,不涉及更高层次的性质或抽象的概念;看图,你一定能懂;
  2. 在二叉树的种类中,看不懂没关系,只要做到对该名词有个影响即可;因为在以后学习才会对它有更深度的理解;
  3. 二叉树存储结构就类似于树的存储结构;

 


二叉树的名词定义

  • 定义:
  1. 是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。
  2. 通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。

也就是说,满足以上两个特性的树就是二叉树。

  • 结点的度:结点拥有的子女的个数。
  • 叶子(leaf):没有儿子的结点。
  • 分支结点:有儿子的结点。
  • 树的度:树中的某个结点有最大的子女个数。
  •  
  • 层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1。
  • 树的高度(height):为该节点到一片树叶的最长路径的长;
  • 某节点的深度(depth):为从根到该节点的唯一路径长;
  •  
  • 无序树:如果树中结点的各子树之间的次序是不重要的,可以交换位置。
  • 有序树:如果树中结点的各子树之间的次序是重要的, 不可以交换位置。
  • 森林:0个或多个不相交的树组成。对森林加上一个根,森林即成为树;删去根,树即成为森林。
  •  
  • 这个路径的长(length)为该路径上的边的条数;
  • 具有相同父亲的节点互称为兄弟(sibling);

 


二叉树的种类

  1. 满二叉树:深度为k的二叉树有2k-1个结点,即树中每个分支结点(非叶结点)都有两棵非空子树。
  2. 完全二叉树:对于一个树高为h的二叉树,如果其①第0层至第h-1层的节点都满,而最下面一层节点不满,并且所有的节点在②左边的连续排列,③空位都在右边。这样的二叉树就是一棵完全二叉树。
  3. 线索二叉树:将一棵普通二叉树以某种次序遍历,并添加线索的过程称为线索化。

 

  1. 最优二叉树:即高效率的哈夫曼判定树。
  2. 最小生成树:权值最小的生成树,就叫做最小生成树;
    ①普里姆算法:选结点,与之相连的最小权值的边,不可出现回路;
    ②克鲁斯卡尔算法:选连线。
     
  3. AOV网(拓扑排序):
    ① 在AOV网中选择一个入度为0(没有前驱)的顶点且输出它;
    ② 在网中删除该顶点及其与该顶点有关的所有股;
    ③ 重复上述两步,直到网中不存在入度为0的顶点为止。
     
  4. 折半查找判定树:以当前查找区间的中间位置序号作为根,左半个子表和右半个子表中的记录序号分别作为根的左子树和右子树的结点,这样构造的二叉树就叫做折半查找判定树。
     
  5. 二叉排序树(二叉查找树):可以是空树,非空时满足:
    ① 若左子树非空,则左子树上所有结点的值均小于根结点的值
    ② 若右子树非空,则右子树上所有结点的值均大于根结点的值
    特点:中序递增;同层,从左至右任然递增。
     
  6. 平衡二叉树:左右子树的高度之差的绝对值≤1,并且左右子树任是平衡二叉树。

 


存储结构

  • 就像在对树的存储结构中所说一样,对于这种特殊的结构,我们得像个办法把它保存下来(放在内存或磁盘中)。然而如何将它的那种树形的结构保存下来,在下次读取时能够恢复成这种结构呢?这,就是存储结构。
  • 存储结构研究的就是:如何将树的这种逻辑物,更好地存储在线性的内存空间中,依然使得其拥有它原来的树形结构。
  • 就像在线性表中,对于一个有限序列(A,B,C,D……),我们把它放在了顺序表(即数组)和链表中一样,二叉树的存储结构也有这类似的两种保存方式。

 

顺序存储结构

二叉树的顺序存储结构中节点的存放次序是:对该树中每个节点进行编号,其编号从小到大的顺序就是节点存放在连续存储单元的先后次序。

对于完全二叉树:

  • 二叉树的数组方式孩子存储结构
#define MAX 10
typedef struct node
{
	char data;
	int LeftChild, RightChild;
}node;
node tree[MAX]; //结构体数组
int legth; //节点的实际个数;
int root; //存放根节点的数组下标;

  • 二叉树的数组方式孩子、双亲存储结构
#define MAX 10
typedef struct node
{
	char data;
	int LeftChild, RightChild;
	int parent; //存放双亲的数组下标;
}node;
node tree[MAX];
int legth; //节点的实际个数;
int root; //存放根节点的数组下标;

链式存储结构

typedef struct node
{
	char data;
	struct node *LeftChild, *RightChild;
	//struct node *parent; //有需要父节点的情况;
}BinNode;

typedef BinNode* BinTree;
BinTree root;

 

 

【数据结构】一篇深入理解二叉树计算 I.树的概念及结构 树的概念 树的结构 树的专有名词 树的表示 树在实际中的运用 II.二叉树的概念及结构 二叉树的概念 特殊的二叉树 二叉树的性质 完全二叉树小知识 III.例题巩固... 阅读详情

相关推荐

手把手教你用smarteye搭建免费GB28181监控平台(含海康设备接入避坑指南)

本文提供了一份基于SmartEye搭建免费GB28181视频监控平台的实战指南。详细介绍了从服务器部署、GB28181协议核心配置,到海康威视等主流设备接入的完整流程,并重点分享了设备注册失败、无法预览等常见问题的深度排错方法,旨在帮助中小企业及开发者低成本实现多品牌监控设备的统一管理。

pz89012345的博客 326

二叉树相关术语

树的结点(node):包含一个数据元素及若干指向子树的分支; 孩子结点(child node):结点的子树的根称为该结点的孩子; 双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲; 兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点; 祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙 结点层:根结点的层定义为1;根的孩...

无痕眼泪的博客 1154

从零开始:用Python实现AlphaZero五子棋AI(附完整代码)

本文详细介绍了如何从零开始使用Python实现AlphaZero五子棋AI。通过工程化实践,逐步构建蒙特卡洛树搜索(MCTS)、轻量化残差网络(ResNet)以及自博弈训练循环,并提供完整可运行的代码。文章旨在帮助开发者绕过复杂理论,聚焦实战,最终打造一个能够自我学习与对弈的智能体,是深度强化学习在游戏AI领域的一次完整项目实战。

weixin_29081703的博客 415

离散数学——图论部分

②设无向图G=为连通的,若有结点集V1⊆ V,使得图G删除了V1所有结点后,所得的子图是不连通的,而删除了V1的任意真子集后,所得的子图仍然是连通图。通俗的讲:图G的一个连通分支是图G的一个极大连通子图,一个图被分成几个小块,每个小块是连通的,但小块之间不连通,那么每个小块称为连通分支。定义 设G = 是连通的带权图,T是G的一棵生成树,T的每个树枝所赋权值之和称为T的权,记为W(T)。(2) 若边e为G中的环,则G*与e对应的边e*为桥,若e为桥,则G*中与e对应的边e*为环.

m0_74850066的博客 6346

MATLAB2022a安装避坑指南:从下载到破解的完整流程(附常见错误解决方案)

本文提供MATLAB2022a在Windows系统下的完整安装教程与深度配置指南。内容涵盖从系统兼容性检查、安装媒介验证到分步安装、自定义产品选择及安装后优化设置的全流程。重点解析了安装过程中常见的权限、空间、许可证错误,并提供了系统性的故障诊断与解决方案,旨在帮助用户构建稳定高效的科研计算环境。

weixin_29057695的博客 439

VSCode 中搭建 Python 开发环境

**验证安装**:打开终端(CMD/PowerShell/终端),输入 `python --version`(Windows)或 `python3 --version`(macOS/Linux),显示版本号即成功。- **下载地址**:[Python 官网](https://www.python.org/downloads/)(选择对应系统的最新稳定版,推荐 3.8+)- **调试**:通过 `launch.json` 配置,设置断点后按 `F5` 启动,使用 `F10/F11` 控制流程。

寒寒豆豆软件公司的博客 2534

哈夫曼树(最优二叉树)、 最小生成树、最短路径、拓扑排序

树中的内容: --------------------------------------------------------------------------------------------------------------------------------- 图中的内容: 带权图的最短路径和距离:

m0_56639363的博客 2099

YOLOv8【第四章:注意力机制篇·第20节】一文讲透,注意力机制设计原则与选择指南 - 从原理到实践的系统化方法论!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》,该专栏持续复现网络上各种热门内容(全网YOLO改进最全最新的专栏,质量分97分+,全网顶流),改进内容支持(分类、检测、分割、追踪、关键点、OBB检测)。且专栏会随订阅人数上升而涨价(毕竟不断更新),当前性价比极高,有一定的参考&学习价值,部分内容会基于现有的国内外顶尖人工智能AIGC等AI大模型技术总结改进而来,嘎嘎硬核。    ✨ 特惠福利:目前活动一折秒杀价!一次订阅,永久免费,所有后续更新内容均免费阅读!

**My Coding Family** 896

数据结构之二叉树

1.树的特点: 1.每个结点有零个或多个子结点; 2.没有父结点的结点为根结点; 3.每一个非根结点只有一个父结点; 4.每个结点及其后代结点整体上可以看做是一棵树,称为 当前结点的父结点的一个子树; 2.树的相关术语 1)结点的度: 一个结点含有的子树的个数称为该结点的度; 2)叶结点: 度为0的结点称为叶结点,也可以叫做终端结点 3)分支结点: 度不为0的结点称为分支结点,也可以叫做非终端结点 4)结点的层次: 从根结点开始,根结点的层次为1,根的直接后继层次为2,以 此类推结点的层序编号: 将树中的结

weixin_45612147的博客 566

基于matlab目标雷达横截面建模(附源码)

雷达系统依靠目标反射或散射来检测和识别目标。目标反射越强,雷达接收器返回的回波就越大,从而获得更高的信噪比(SNR)和更高的检测可能性。在雷达系统中,从目标反射的能量由雷达横截面(RCS)决定,定义为sigma代表RCS,R是雷达与目标之间的距离,Es是从目标反射的信号的场强,以及Ei是入射到目标上的信号的场强。通常,目标向各个方向散射能量,RCS是入射角,散射角和信号频率的函数。RCS 取决于目标的形状和构建目标的材料。用于RCS的常用单位包括平方米或dBsm。

珞瑜的博客 3083

069_死区效应对输出电压畸变的补偿思路

死区效应导致逆变器输出电压在过零点出现台阶畸变,引发THD升高。其本质是死区期间续流二极管钳位造成的非线性误差,与电流方向、负载大小、母线电压耦合。补偿需结合前馈(基于电流方向自适应调整偏置)与反馈(抑制残余谐波),关键在于准确判断电流方向(采用滞环滤波避免跳变)、合理设置补偿量(随负载动态调整),并注意补偿位置、极性及限幅防漂移。调试应通过差分探头、FFT频谱等手段验证效果,最终实现全负载范围内的低畸变输出。

2401_88858637的博客 21

【数据结构】总结二叉树的概念以及存储结构

树,二叉树,满二叉树,完全二叉树,顺序存储,链式存储

林宇恒的博客 3656

毕设助力!从0到1构建基于YOLO的家居安防异常活动监测系统,让你的毕设守护家庭安全

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护生活”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了家居安防的哪些痛点、对比了不同YOLO模型的性能差异、系统未来能怎么优化(比如对接智能门锁/报警器、实现语音交互)。未来,这个系统还能往“更智能”的方向发展:比如结合行为分析判断异常意图、开发移动端APP实现全屋设备联动、在智慧社区中实现多家庭联防……想象空间很大。

LXY_LOVE36的博客 120

< 数据结构 > 树与二叉树

目录 1、树的概念及结构 树的概念 树的专有名词 树的表示 树在实际中的运用 2、二叉树的概念及结构 概念 现实中的二叉树 特殊的二叉树 二叉树的性质 二叉树的存储结构 1、树的概念及结构 树的概念 现实中的树: 数据结构中的树: 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集...

bit_zyx的博客 6390

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【开卷数据结构 】 树与二叉树

在之前的文章里,我们学习的一直是一对一的线性结构,可现实中,还有很多一对多的情况需要处理,所以我们需要研究这样一种一对多的数据结构 ——“树”

Ceylan__的博客 3720

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

二叉树(详解)

二叉树,完全二叉树,堆,满二叉树,树形结构,父子结点下标计算,树的储存 现实中的二叉树,堆的计算,二叉树的储存,父结点,子结点

2302_80105876的博客 1926

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【数据结构】·励志大厂版(复习+刷题):二叉树

二叉树是计算机科学与技术中最基础、最重要的数据结构之一,它既是递归思想的完美载体,也是众多高级数据结构(如二叉搜索树、堆、B树)的基石。无论是算法面试、系统设计还是日常开发,二叉树相关的知识都扮演者不可或缺的角色。文章准备了二叉树的概念讲解、OJ题,助你巩固所学!

月亮永悬不落,剑指巅峰 6041

【数据结构】二叉树(门槛极低的系统性理解)

本文系统性的解释了二叉树这一计算机科学核心的数据结构,覆盖了概念、分类、性质、实现、图文讲解等多个方面,帮助读者来零基础学习二叉树的知识,入门门槛极低,通过文字与图片的方式来提高理解能力。最后讲解了递归的逻辑,方便理解二叉树的四种遍历方式!

月亮永悬不落,剑指巅峰 2254

树与二叉树

基于懒猫老师的数据结构课程 对树与二叉树基础的详解

2402_88307286的博客 909

数据结构与算法:二叉树

数据结构与算法:二叉树

鱼丸丶粗面 1033

数据结构——树与二叉树

从树到二叉树的概念及结构,文末附上了二叉树顺序结构和链式结构实现的入口

yue152152的博客 3412

数据结构【树与二叉树的概念、结构--6】

本期是树与二叉树的概念、结构

我心如火 752

DS:树与二叉树的相关概念

本片博客姐详细介绍了树和二叉树的相关概念、结构及其名词解释,喜欢的uu码住哦!

白乐天_ξ( ✿>◡❛)的博客 1519

【数据结构】神奇的二叉树

详细介绍数据结构中二叉树的概念,遍历等等

flmz_Kk的博客 1036

二叉树入门:从概念到代码全解析

本文介绍了二叉树的基本概念和实现方式。主要内容包括:1. 树结构的基础概念(节点、度、层次等)和表示方法;2. 二叉树的定义及特殊类型(满二叉树、完全二叉树);3. 二叉树的两种存储结构:顺序存储(适用于完全二叉树)和链式存储;4. 堆的概念及实现,包括堆的初始化、插入、删除等操作;5. 堆排序的两种实现方法。文章通过图示和代码示例,详细讲解了使用顺序结构实现堆及其相关操作的过程,包括向上调整和向下调整算法,并演示了堆排序的具体应用。

2401_86523238的博客 2324

数据结构:树,二叉树

1 树 1.0 基本概念 树是n(n≥0n\geq0n≥0)个结点的有限集合T。当n=0时,称为空树,当n>0时,该集合满足如下条件: 其中必有一个称为根(root)特定结点,没有直接前驱,但有零个或多个直接后继。 其余n-1个结点可以划分为m个互不相交的有限集T1,T2,...,TmT_1,T_2,..., T_mT1​,T2​,...,Tm​,其中TiT_iTi​又是一棵树,称为根ro...

天然玩家的博客 3609
上一篇: 【树】对树的初步认识:树的表示法与存储结构
下一篇: 【二叉树】二叉树的基础特性大总结
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值