树的基本概念

  • 树的定义
  • 树的特点
  • 基本术语
  • 树的性质

树的定义

树是n(n >=0)个节点的有限集。n = 0时,为空树。
任意一棵非空树应满足:
①、有且仅有一个特定的成为根的结点。
②、当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并成为根的子树。

树的特点

1、树的根结点没有前驱,除根结点外所有的结点有且只有一个前驱。
2、树中所有结点可以有零个或多个后继。

树时一种递归的数据结构,是逻辑结构,也是分层结构。

n个结点的树中有n-1条边。

基本术语


看结点Q:从A到Q的唯一路径上任意节点,成为Q的祖先。
E是Q的祖先,Q是E的子孙,J是Q的双亲,P和Q是兄弟

结点的度:一个结点的孩子的个数就是结点的度
树的度:树中结点最大的度称为树的度

分支结点:度大于0的结点称分支节点(又称非终端结点)
叶子结点:度为0的结点称叶子结点(又称终端结点)

结点的层次:从树根开始定义,根节点为第一层,它的子节点为第二层,以此类推。
结点的深度:从根节点开始自定向下逐层累加。
结点的高度:从叶节点开始自底向上逐层累加。
树的高度(或深度):书中结点的最大层数。

有序树:树中结点的各子树从左到右是有次序的,不能互换
无序树:树中结点的各子树没有次序,可以互换

路径:两结点之间所经过的结点序列构成路径
路径长度:是路径上所经过的边的个数

森林:m(m>=0)棵互不相交树的集合。

树的性质

1、树中的结点数 = 所有结点的度数 (边数)+ 1;
2、度为m的树中第i层上最多有 mi-1 个结点;
m叉树第i层至多有mi-1 个结点;
3、度为m的树至少有一个结点的度 = m,至少有m + 1个结点
m叉树允许所有结点的度<m,可以是空树
4、高度为h的m叉树至多有(mh - 1 )/(m - 1)个结点
高度为h的m叉树至少有n个结点
高度为h,度为m的 树至少 h+m-1个结点
5、具有n个结点的m叉树的最小高度为 logm(n(m-1)+1)

树的基本概念(定义、基本术语、性质)相关推荐

  1. 树的常见概念,二叉树的性质

    什么是树 树是一种非线性数据结构,它是由n(n>=0)个有限结点组成的一个具有层次的关系集合.它有以下几个特点: List item有一个特殊的节点,称为根节点,根节点没有前驱节点 除根节点,其 ...

  2. 【数据结构】 树与二叉树的基本概念、结构特点及性质

    前言:本章内容主要是数据结构中树与二叉树的基本概念.结构特点及性质的引入. 文章目录 树的概念 树的特点: 树的常用术语: 树的表示: 代码创建: 树在实际中的应用: 二叉树的概念 特殊的二叉树 满二 ...

  3. 考研复习之数据结构笔记(九)树(上)(树和二叉树的概念、特征、性质及相关实例)

    目录 一.树的基本概念和术语 1.1 基本定义与特点 (1)基本定义: (2)基本特点 1.2 树的基本术语 1.3 树的基本性质 二.二叉树 2.1 二叉树的定义与性质 (1)基本概念 (2)与树的 ...

  4. 数据结构之树和二叉树的定义和性质

    树和二叉树的定义和性质 树 思维导图: 树的基本定义: 树的基本术语: 树的性质: 二叉树: 二叉树的定义: 二叉树的5中形态: 二叉树的几种特殊形态: 满二叉树: 完全二叉树: 二叉排序树: 平衡二 ...

  5. 树的基本概念和2叉树中重要的几个性质

    1.树的基本概念 : 其中节点的度,叶节点,节点的层次 ,树的度,树的高度,节点的祖先是重点概念,我们要重点掌握以后会经常用到. 2.树的性质: 设树有n个节点,则树有n-1条边,设该树的节点的度为n ...

  6. 图的定义与术语 - 数据结构和算法54

    图的定义与术语 让编程改变世界 Change the world by program   在前边讲解的线性表中,每个元素之间只有一个直接前驱和一个直接后继,在树形结构中,数据元素之间是层次关系,并且 ...

  7. 哈夫曼树的基本概念及其构建(C++)

    哈夫曼树的基本概念: 在了解哈夫曼树的概念之前,我们要了解到的是带权路径长度的概念: 在实际应用当中,树中的结点往往都会被赋予某种意义的数值,这个数值就称为该结点的权: 从根结点到任意结点的路径长度( ...

  8. 树的基本概念以及java实现二叉树(二)

    前言 本文是我在学习了树后作的总结文章,接上篇文章,本节大致可以总结为: 二叉树的遍历与实现(递归和非递归) 获取二叉树的高度和度 创建一棵二叉树 其他应用(层序遍历,复制二叉树,判断二叉树是否相等) ...

  9. 树的基本概念以及java实现二叉树(一)

    前言 作为一个程序员,要了解最基本的数据结构的.本文是我在学习了树后作的总结文章,本节大致可以总结为: 什么是树 树的基本性质(专有名词) 什么是二叉树 二叉树的基本性质 二叉树的存储结构 文章传送门 ...

最新文章

  1. Android热修复原理,已整理成文档
  2. 前台使用三元运算符判断显示
  3. 【Android 逆向】Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )
  4. return 关键字
  5. 数据字典怎么写_求职数据分析,项目经验该怎么写
  6. 适配器模式和装饰模式
  7. idea报错 电脑死机蓝屏
  8. [渝粤教育] 中国地质大学 运筹学 复习题
  9. UNIX网络编程——select函数的并发限制和 poll 函数应用举例
  10. Redis 它是什么?它用来做什么?它的优势与短板如何?
  11. 123_Power PivotPower BI DAX函数说明速查
  12. 网络协议:TCP流量控制
  13. android xml 多行注释,C#中的XML多行注释 - 我做错了什么?
  14. 2-java学习笔记
  15. unity 调c++的dll
  16. php 工作管理系统,TP-Admin
  17. Python教你实现微信防撤回~
  18. matlab遗传算法配送路径,基于遗传算法的生鲜配送的路径优化问题
  19. 【线代NumPy】第五章 - 行列式课后练习 | 伴随矩阵求逆 | Cramer公式求联立方程 | 简述并提供代码
  20. 2020年最值得期待的几大BPM厂商一览

热门文章

  1. uniapp打包微信小程序详细步骤【前端开发】
  2. [时间序列分析][4]--AR模型,MA模型,ARMA模型介绍
  3. PowerApps入门——PowerApps的3种打开方式
  4. 解决windows11屏幕亮度忽明忽暗的问题
  5. 2017 移动端 iOS 年终工作总结-纯干货请自备酒水
  6. log4j升级为log4j2(无需改动代码)
  7. 实习日记 7.10
  8. win7/win8卸载matlab时提示 bummer -uninstller error exeption calling main
  9. 北京科技大学计算机考研专业课计算机综合一871分享
  10. java手机appium的move方法_appium移动自动化详解