数据结构 - 树 - 树的基本介绍

树的定义

是由 \(n\) 个结点构成的有限集合,在任意一棵非空树中:

  • 有且仅有一个称为根 root 的结点。

  • \(n>1\) 时,其余结点可分为若干个互不相交的集合,且这些集合中的每一个集合本身又是一棵树,称为根的子树

(1) 数据对象

数据对象 D 是具有相同特性的数据元素的集合。

(2) 数据关系

D 为空集,则称为空树。否则:

  • D 中存在唯一称为的数据元素;

  • \(n>1\) 时,其余结点可分为 \(m(m>0)\) 个互不相交的有限集 \(T_1\)\(T_2\)\(\cdots\)\(T_m\),其中每一棵子集本身又是一棵树,称为根的子树。

例子

对于一棵树 \(T=\{A,B,C,D,E,F,G,H,I,J\}\)

\(A\) 是根,其余结点划分为三个互不相交的集合:

\[T_1 = \{B,E,F\}, \quad T_2 = \{C,G\}, \quad T_3 = \{D,H,I,J\} \]

每一个集合又都是一棵树,它们是根 \(A\) 的子树。对于 \(T_1\)\(B\) 是根,其余结点又可以划分为两个互不相交的集合。

\[T_{11} = \{E\}, \quad T_{12} = \{F\} \]

\(T_{11}\)\(T_{12}\)\(B\) 的子树。

其逻辑结构可以表示为下图:

从逻辑结构上看

  • 树中只有根结点没有前驱;

  • 除根外,其余结点有且仅有一个前驱;

  • 树中的结点,可以有零个或多个后继;

  • 除根之外的其他结点,都存在唯一一条从根到该结点的路径。

  • 树是一种分支结构。

树的基本术语

结点:数据元素 \(+\) 若干指向子树的分支。

结点的度:分支的个数。

树的度:树中所有结点的度的最大值。

叶子结点:度为零的结点。

分支结点:度大于零的结点。

一般的树可能有隐性的序关系。

  • 有序树:子树之间有明确的次序关系。

  • 无序树:子树之间没有顺序要求。

(从根到结点的)路径:由从根到该结点所经过的分支和结点构成。

对结点进行一些分类上的说明。

孩子结点、子孙结点

兄弟节点、堂兄弟

双亲结点、祖先节点

结点的层次:假设根节点的层次为 \(1\),在第 \(k\) 层结点的子树的根结点,在第 \(k+1\) 层。

树的深度:树中叶子结点所在的最大层次。

森林\(m \,(m \geqslant 0)\) 棵互不相交的树的集合。

则任何一棵非空树都是一个二元组

\[\text{Tree}=\{\text{root}, \text{F}\} \]

其中,\(\text{root}\) 称为根结点,\(\text{F}\) 称为子树森林。

posted on 2022-04-19 13:48  Black_x  阅读(227)  评论(0编辑  收藏  举报