当前位置: 首页 > news >正文

数据结构~~树(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.lryc.cn/news/298718.html

相关文章:

  • 【教学类-48-03】202402011“闰年”(每4年一次 2月有29日)世纪年必须整除400才是闰年)
  • 如何开发一个属于自己的人工智能语言大模型?
  • 【HTTP】localhost和127.0.0.1的区别是什么?
  • Edge浏览器-常用快捷键
  • C++:Vector动态数组的copy深入理解
  • 【PyTorch】PyTorch中张量(Tensor)切片操作
  • GeoServer 2.11.1升级解决Eclipse Jetty 的一系列安全漏洞问题
  • 【蓝桥杯选拔赛真题34】C++最大值 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
  • STM32之USART
  • unity 点击事件
  • idea自带的HttpClient使用
  • vue3-应用规模化-路由和状态
  • 网络安全检查表
  • SSM框架,Maven的学习(下)
  • Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)
  • C语言之动态内存管理
  • 【AIGC风格prompt深度指南】掌握绘画风格关键词,实现艺术模仿的革新实践
  • Qt安装配置教程windows版(包括:Qt5.8.0版本,Qt5.12,Qt5.14版本下载安装教程)(亲测可行)
  • SpringCloud-Ribbon实现负载均衡
  • Qt网络编程-TCP与UDP
  • Promise 常见题目
  • 五大架构风格之五:仓库架构风格
  • 探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
  • java之Maven
  • Elasticsearch(四)
  • 蓝桥杯-X图形
  • 2. Maven 继承与聚合
  • 如何把手机平板变为电脑的屏幕
  • Amazon Dynamo学习总结
  • appium抓包总结