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

数据结构 | 树

树是n(n>=0)个结点的有限集。当n = 0时,称为空树。在任意一棵非空树中应满足:

  1. 有且仅有一个特定的称为根的结点。
  2. 当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树

概念

树的高、深度vs结点的高、深度 

高度:从下到上深度:从上到下
根节点为第0层:高度:数结点数,深度:数路径树从根结点开始往下数,叶子结点所在的最大层数
树:高度等于深度(根节点为第一层)结点高度不一定等于深度(叶子结点编号是0还是1)

树的高度和深度 | 结点的高度和深度_树的高度从0开始还是1_Ann's Blog的博客-CSDN博客


 

祖先:考虑结点K。根A到结点K的唯一路径上的任意结点,称为结点K的祖先。如结点B是结点K的祖先,而结点K是结点B的子孙。

双亲&孩子:路径上最接近结点K的结点E称为K的双亲,而K为结点E的孩子。

兄弟:有相同双亲的结点称为兄弟,如结点K和结点L有相同的双亲E,即K和L为兄弟。

堂兄弟:双亲在同一层的结点互为堂兄弟,图中结点G与E,F,H,I,J互为堂兄弟。
度:树中一个结点的孩子个数称为该结点的度,树中结点的最大度数称为树的度。如结点B的度为2,结点D的度为3,树的度为3。
分支结点:度大于0的结点称为分支结点(又称非终端结点);

叶子结点:度为0(没有子女结点)的结点称为叶子结点(又称终端结点)。

有序树和无序树。树中结点的各子树从左到右是有次序的,不能互换,称该树为有序树,否则称为无序树。

路径和路径长度。树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的边的个数。
注意:由于树中的分支是有向的,即从双亲指向孩子,所以树中的路径是从上向下的,同一双亲的两个孩子之间不存在路径。


森林。森林是m (m≥0)棵互不相交的树的集合。森林的概念与树的概念十分相近,因为只要把树的根结点删去就成了森林。反之,只要给m棵独立的树加上一个结点,并把这m棵树作为该结点的子树,则森林就变成了树。


 

http://www.lryc.cn/news/175175.html

相关文章:

  • Android11 适配
  • UML基础与应用之对象图
  • 英码科技精彩亮相火爆的IOTE 2023,多面赋能AIoT产业发展!
  • 400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?
  • 【Android】Kotlin 中的 apply、let、with、also、run 到底有啥区别?
  • 设计模式——职责链模式
  • 小程序自定义tabbar,中间凸起
  • 数据结构-顺序栈C++示例
  • 若依cloud -【 100 ~ 103 】
  • 可转债实战与案例分析——成功的和失败的可转债投资案例、教训与经验分享
  • @NotNull注解不生效,全局异常处理
  • 【办公自动化】使用Python一键往Word文档的表格中填写数据(文末送书)
  • OpenHarmony应用核心技术理念与需求机遇简析
  • 让Pegasus天马座开发板实现超声波测距
  • C++11 多线程学习
  • 数学公式测试
  • 机器学习——SVM(支持向量机)
  • 【李沐深度学习笔记】基础优化方法
  • tmux 配置vim风格按键,支持gbk编码
  • Python —— excel文件操作(超详细)
  • 什么是AI问答机器人?它的应用场景有哪些?
  • 静态文件
  • Centos7 自部署中间件开机启动,以及java应用开机启动方法
  • 密度估计公式
  • 2023 ICPC 网络赛 第一场(补题:F)
  • MySQL慢查询优化、日志收集定位排查、慢查询sql分析
  • HZOJ-266:表达式计算
  • JavaScript学习小结
  • MySQL学习笔记13
  • 怎么获取外网ip地址