【408考点之数据结构】树的基本概念

树的基本概念

树是一种重要的非线性数据结构,在计算机科学和许多实际应用中具有广泛的应用。树的基本概念包括树的定义、基本术语、树的性质和树的类型等。

一、树的定义

树(Tree)是n(n≥0)个节点的有限集合。对于任意一个非空树:

  1. 有且仅有一个称为根(Root)的节点。
  2. 当n>1时,其余节点可分为m(m>0)个互不相交的有限集合T1,T2,...,Tm,每一个集合本身又是一棵树,称为根的子树(Subtree)。
二、树的基本术语
  1. 节点(Node):树的基本单位,包含一个数据元素及若干指向其子节点的分支。
  2. 根节点(Root):树的顶端节点,没有父节点。
  3. 叶节点(Leaf):没有子节点的节点。
  4. 内部节点(Internal Node):至少有一个子节点的节点。
  5. 子节点(Child)和父节点(Parent):节点的直接下属节点称为子节点,直接上属节点称为父节点。
  6. 兄弟节点(Sibling):具有相同父节点的节点互为兄弟。
  7. 路径(Path):从一个节点到另一个节点经过的节点序列。
  8. 树的度(Degree):树中节点的最大度数。
  9. 节点的度(Degree of a Node):节点的子树个数。
  10. 层次(Level):节点所在的层次,从根开始定义,根为第1层,根的子节点为第2层,依次类推。
  11. 树的深度(Depth)或高度(Height):树中节点的最大层次。
三、树的性质
  1. 性质1:在非空树中,n个节点共有n-1条边。
  2. 性质2:度为m的树中,第i层最多有m^(i-1)个节点(i≥1)。
  3. 性质3:深度为h的m叉树最多有(m^h - 1)/(m - 1)个节点(m > 1)。
  4. 性质4:具有n个节点的完全二叉树的深度为⌊log₂n⌋ + 1。
  5. 性质5:n个节点的树至少有⌈log₂(n + 1)⌉层。
四、树的类型
  1. 二叉树(Binary Tree):每个节点最多有两个子树的树结构。二叉树常用于实现堆、二叉搜索树、平衡树等。
  2. 完全二叉树(Complete Binary Tree):除了最后一层外,所有层的节点都达到最大值,且最后一层的节点都在左侧。
  3. 满二叉树(Full Binary Tree):每个节点要么是叶子节点,要么有两个子节点。
  4. 平衡二叉树(Balanced Binary Tree):任何节点的两个子树的高度差不超过1的二叉树。
  5. 二叉搜索树(Binary Search Tree):左子树所有节点的值小于根节点的值,右子树所有节点的值大于根节点的值。
  6. 森林(Forest):m(m≥0)棵互不相交的树的集合。
相关推荐
稚南城才子,乌衣巷风流4 分钟前
动态树(Dynamic Tree)数据结构详解
数据结构·算法
zander25841 分钟前
114. 二叉树展开为链表
数据结构·链表·深度优先
变量未定义~1 小时前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
这就是佬们吗1 小时前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH1 小时前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
自学小白菜1 小时前
关于提升机器学习算法做预测回归任务精度的方法分享
算法·机器学习·回归·提升精度
学废了wuwu1 小时前
从入门到实战:深入浅出模型压缩三大核心——剪枝、彩票假设与知识蒸馏
人工智能·算法·剪枝
小肝一下2 小时前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra
劈星斩月2 小时前
监督学习算法 之 决策树
学习·算法·决策树
学计算机的计算基2 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法