数据结构~~树(2024/2/8)

目录

树  

1、定义:

2、树的基本术语:

3、树的表示  


树  

1、定义:

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

树是递归定义的!!

【注意】

(1)当n=0时称为空树。

(2)当n=0时称为空树,对于非空树T:

只有一个根结点(root);

除根节点外的其余结点可分为m个互不相交的有限集T1,T2,……,Tm,其中每个集合本身又是一棵树,称为根的子树。

2、树的基本术语:

结点:树的一个独立单元,包含一个数据元素或者指向其子树的分支。如图中的A,B,C等。

结点的度结点拥有的子树数称为结点的度(也可以理解为这个结点有多少个孩子)。如A的度是2,B的度是3,D的度是0。

树的度:树的各个结点的度的最大值。如图中的树的度为3。

叶子结点(或者终端结点):度为0的结点。如图中的D,E,F,G。

非终端结点:度不为0的结点。除根结点外,非终端结点也称为内部结点。如图中B,C。

孩子结点(或者子节点):一个结点的子树的根结点称为该结点的孩子结点。如图中B和C是A的子结点。

双亲结点(或者父结点):一个结点有一个子结点,该结点称为其子结点的父结点。如图中,A是B和C的双亲结点。

兄弟结点:同一双亲的孩子之间互称兄弟。如图中B和C是兄弟结点。

祖先:从根结点到该结点所经分支上的所有结点。如D的祖先是A和B。

子孙:以某结点为根的子树的任一结点都称为该结点的子孙。如D,E,F是B的子孙。

层次:从根结点开始,根结点为第一层,根的孩子为第二层,以此类推直到最后一层。如A是第一层,B是第二层,D是第三层。

深度:树中结点的最大层次。如A这棵树的深度是3。

森林:由m棵互不相交的树构成的集合。如去掉A结点,B和C这两棵子树就是森林。

3、树的表示  

树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,实际中树有很多种表示方式,如:双亲表示法,孩子表示法、孩子兄弟表示法等等。

我们了解其中最常用的孩子兄弟表示法:

typedef int DataType;
struct Node
{struct Node* firstChild1; struct Node* pNextBrother; DataType data; 
};

下一次我们开始学习二叉树!!!

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

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

相关文章

神经网络(Nature Network)

最近接触目标检测较多,再此对最基本的神经网络知识进行补充,本博客适合想入门人工智能、其含有线性代数及高等数学基础的人群观看 1.构成 由输入层、隐藏层、输出层、激活函数、损失函数组成。 输入层:接收原始数据隐藏层:进行…

C语言函数的栈帧与销毁(面试亮点)

目录 如果你能熟练的掌握函数的栈帧与销毁在面试中是及其亮眼的加分项,所以我们来以实例来将解函数是如何实现栈帧与销毁的。 一. 函数栈帧 二.寄存器 三. 用例题讲解创建栈帧的过程 3.1 main 函数的反汇编代码。 第一步:给调用main函数的函数分配…

计算机毕业设计SSM基于的冷链食品物流信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: vue mybatis Maven mysql5.7或8.0等等组成,B…

网络安全工程师技能手册(附学习路线图)

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 安全是互联网公司的生命,也是每位网民的基本需求。现在越来越多的人对网络安全感兴趣,愿意投奔到网络安全事业之中,这是一个很好的现象。 很多对网络安全感…

使用securecrt+xming通过x11访问ubuntu可视化程序

windows使用securecrtxming通过x11访问ubuntu可视化程序 windows机器IP:192.168.9.133 ubuntu-desktop20.04机器IP:192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在…

爬虫练习——动态网页的爬取(股票和百度翻译)

动态网页也是字面意思:实时更新的那种 还有就是你在股票这个网站上,翻页。他的地址是不变的 是动态的加载,真正我不太清楚,只知道他是不变的。如果用静态网页的方法就不可行了。 静态网页的翻页,是网址是有规律的。 …

政安晨:梯度与导数~示例演绎《机器学习·神经网络》的高阶理解

这篇文章确实需要一定的数学基础,第一次接触的小伙伴可以先看一下我示例演绎这个主题的前两篇文章: 示例演绎机器学习中(深度学习)神经网络的数学基础——快速理解核心概念(一): 政安晨&#…

工业级加固平板丨亿道三防平板电脑丨安卓工业平板丨改善车队管理

在现代物流和运输行业中,车队管理是一个复杂而重要的任务。为了更好地管理车队,提高工作效率和减少成本,许多企业正在采用新技术和工具。其中,三防平板电脑作为一种功能强大且适应恶劣环境的设备,已经在车队管理中得到…

【2024年数据】67个“绿色金融”主题DID政策汇总(已去重)

DID”发文趋势和主题分布 数据来源:中国知网、各期刊官网 时间跨度:2017-2024年 数据范围:中国各省 数据指标: 序号 用于构建DID的政策 文献标题 1 “宽带中国” 数字技术创新与中国企业高质量发展——来自企业数字专利的证据…

unity学习案例总结

动态标签 GitHub - SarahMit/DynamicLabel3D: Simple dynamic labels for a 3D Unity scene

(已解决)将overleaf上的文章paper上传到arxiv上遇到的问题。

文章目录 前言初级问题后续问题 前言 首先说一点,将paper的pdf文件直接上传arxiv是不行的,arxiv要求我们要上传源文件,所以才这么麻烦。 初级问题 首先上传文件之后有可能会在下面这个界面出现问题,这里一般都比较常见的问题&a…

QT学习文件操作类 QFile

(一)QFile QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文件。QFile 继承自 QIODevice ,因此它可以像其他 IO 设备一样使用。 (1)主要功能 1. 文件读写…