Tree Basic Concepts
树的基本概念
树的定义
树是 $n(n \ge 0)$ 个结点的有限集合。
- $n=0$ 时为空树。
- 非空树有且仅有一个根结点。
- 当 $n>1$ 时,其余结点可分为 $m(m>0)$ 个互不相交的有限集合 $T_1,T_2,\ldots,T_m$,每个集合本身又是一棵树,称为根的子树。
树是递归定义的数据结构。
非空树的基本特性
- 有且仅有一个根结点。
- 没有后继的结点称为叶子结点或终端结点。
- 有后继的结点称为分支结点或非终端结点。
- 除根结点外,任何结点都有且仅有一个前驱。
- 每个结点可以有 0 个或多个后继。
概念表
| 概念 | 含义 |
|---|---|
| 祖先结点 | 从根到该结点路径上的所有上级结点 |
| 子孙结点 | 以某结点为根的子树中的所有下级结点 |
| 双亲结点 | 某结点的直接前驱 |
| 孩子结点 | 某结点的直接后继 |
| 兄弟结点 | 有同一个双亲的结点 |
| 堂兄弟结点 | 双亲在同一层的结点 |
| 路径 | 从一个祖先到一个子孙经过的结点序列 |
| 路径长度 | 路径上经过的边数 |
树的路径默认只能从上往下讨论;普通树中不把从子孙回到祖先看作树的路径。
结点和树的属性
- 结点的层次或深度:从根开始自上向下计数,通常根为第 1 层。
- 结点的高度:从叶子开始自下向上计数。
- 树的高度或深度:树中结点的最大层数。
- 结点的度:该结点的孩子个数。
- 树的度:树中各结点度的最大值。
- 叶子结点的度为 0。
- 非叶子结点的度大于 0。
更多详见tree-properties
有序树、无序树和森林
- 有序树:树中结点的各子树从左到右有次序,不能互换。
- 无序树:各子树无次序,可以互换。
- 森林:$m(m \ge 0)$ 棵互不相交的树的集合,$m=0$ 时为空森林。
森林和树可以相互转换,见tree-forest-and-binary-tree-conversion。
树形逻辑结构的应用
树适合表示层次关系,例如文件目录、组织结构、家谱、表达式分解等。其核心特点是:除根外每个结点只有一个直接前驱,但可以有多个直接后继。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Elian's blog page!