树(Tree):层次结构的数据结构基础
树是一种非线性数据结构,由节点(Node)和边(Edge)组成,呈现层次化的分支关系。它广泛应用于文件系统、数据库索引、决策分析等场景,是理解更复杂数据结构(如二叉树、B 树)的基础。
树的核心概念与特性
基本定义
树是由n(n ≥ 0)个节点组成的有限集合:
- 当
n = 0时,称为空树。 - 当
n > 0时,有且仅有一个根节点(Root),其余节点分为若干个互不相交的子集,每个子集本身也是一棵树(称为子树)。
关键术语
- 节点的度:一个节点拥有的子节点数量(如叶子节点的度为 0)。
- 树的度:树中所有节点的最大度数(反映树的 “分支能力”)。
- 父节点与子节点:若节点
A是节点B的直接前驱,则A是B的父节点,B是A的子节点。 - 叶子节点:度为 0 的节点(无任何子节点)。
- 深度:从根节点到当前节点的路径长度(根节点深度为 0,子节点深度为父节点深度 + 1)。
- 高度:从当前节点到最深叶子节点的路径长度(叶子节点高度为 0,父节点高度为子节点高度的最大值 + 1)。
核心特性
- 唯一性:根节点唯一,非根节点有且仅有一个父节点。
- 无环性:任意两个节点之间的路径唯一,不存在环路。
- 层次性:节点按 “根→子树” 的层次关系组织。
树的表示方式
树的存储需体现节点间的父子关系,常见表示方法有以下两种:
