第五章、树与二叉树
一、知识框架
二、树的基本概念
1、树的定义
树是 n (n ≥ 0) 个结点的有限集。当n = 0
时,称为空树。在任意一棵非空树中应满足:
- 1)有且仅有一个特定的称为 根 的结点。
- 2)当
n > 1
时,其余结点可分为m (m > 0) 个互不相交的有限集T1,T2,···,Tm,其中每个集合本身又是一棵树,并且称为根的子树。
显然,树的定义是递归的,即在树的定义中又用到了其自身,树是一种递归的数据结构。
树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点:
- 1)树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。
- 2)树中所有结点可以有零个或多个后继。
树适合于表示具有层次结构的数据。树中的某个结点(除根结点外)最多只和上一层的一个结点(即其父结点)有直接关系,根结点没有直接上层结点,因此在n个结点的树中有n-1条边。而树中每个结点与其下一层的零个或多个结点(即其子女结点)有直接关系。
2、基本术语
下面结合下图中的树来说明一些基本术语和概念。
- 1)考虑结点 K。根 A 到结点 K 的唯一路径上的任意结点,称为结点 K 的祖先。如结点 B 是结点 K 的祖先,而结点 K 是结点 B 的子孙。路径上最接近结点 K 的结点 E 称为 K 的双亲,