目录
5.1树的基本概念
5.1.1树的定义
树是n (n>_0)个结点的有限集。当n=0时,称为空树。在任意一棵非空树中应满足:
(1)有且仅有一个特定的称为根的结点。
显然,树的定义是递归的,即在树的定义中又用到了其自身,树是一种递归的数据结构。树
作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点:
1)树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。
2)树中所有结点可以有零个或多个后继。
树适合于表示具有层次结构的数据。树中的某个结点(除根结点外)最多只和上一层的一个
结点(即其父结点)有直接关系,根结点没有直接上层结点,因此在n个结点的树中有n-1条边。
而树中每个结点与其下一层的零个或多个结点(即其子女结点)有直接关系。
5.1.2 基本术语

(l) 结点:树中的一个独立单元。包含一个数据元素及若于指向其子树的分支,如图 5.1 (b) 中的 A 、 B 、 C 、 D 等。(下面术语中均以图 5.1 (b) 为例来说明)
(2)结点的度:结点拥有的子树数称为结点的度。例如,A的度为 3, C的度为l, F的度 为0。
(3)树的度:树的度是树内各结点度的最大值。图 5.1 (b) 所示的树的度为3。
(4) 叶子: 度为 0 的结点称为叶子或终端结点。结点 K 、 L 、 F 、 G 、 M 、 I 、 J都是树的 叶子。
(5) 非终端结点:度不为 0 的结点称为非终端结点或分支结点。除根结点之外,非终端结点 也称为内部结点。
(6)双亲和孩子:结点的子树的根称为该结点的孩子,相应地,该结点称为孩子的双亲。例 如,B的双亲为A, B的孩子有E和F。
(7) 兄弟:同一个双亲的孩子之间互称兄弟。例如,H 、 I 和J互为兄弟。
(8) 祖先:从根到该结点所经分支上的所有结点。例如, M 的祖先为 A 、 D 和H。
(9) 子孙:以某结点为根的子树中的任一结点都称为该结点的子孙。如 B 的子孙为E 、 K 、 L 和F。
(10) 层次:结点的层次从根开始定义起,根为 第一层,根的孩子为第二层。树中任一结点的 层次等千其双亲结点的层次加 1。
(11)堂兄弟:双亲在同 一层的结点互为堂兄弟。例如,结点 G 与E 、 F、 H 、 I 、 J互为 堂兄弟。
(12)树的深度:树中结点的最大层次称为树的深度或高度。图5.1 (b)所示的树的深度 为4。
(13)有序树和无序树:如果将树中结点的各子树看成从左至右是有次序的(即不能互换), 则称该树为有序树,否则称为无序树。在有序树中最左边的子树的根称为第一个孩子,最右边的 称为最后一个孩子。
(14)森林:是m (m=>0)棵互不相交的树的集合。对树中每个结点而言,其子树的集合即 为森林。由此,也可以用森林和树相互递归的定义来描述树。
(15)路径和路径长度:树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的边的个数。
注意:由于树中的分支是有向的,即从双亲指向孩子,所以树中的路径是从上向下的,同一双亲的两个孩子之间不存在路径.
5.1.3树的性质


5.2二叉树的概念
5.2.1二叉树的定义及其主要特性
1.二叉树的定义
二叉树是另一种树形结构,其特点是每个结点至多只有两棵子树(即二叉树中不存在度大于
2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。
与树相似,二叉树也以递归的形式定义。二叉树是n (n>=0)个结点的有限集合:
①或者为空二叉树,即n = 0
②或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树
又分别是一棵二叉树。
二叉树是有序树,若将其左、右子树颠倒,则成为另一棵不同的二叉树。即使树中结点只有
一棵子树,也要区分它是左子树还是右子树。二叉树的5种基本形态如图5.2所示。

二叉树与度为2的有序树的区别:
①度为2的树至少有3个结点,而二叉树可以为空。
②度为2的有序树的孩子的左右次序是相对于另一孩子而言的,若某个结点只有一个孩子,
则这个孩子就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次
序,即二叉树的结点次序不是相对于另一结点而言,而是确定的。
2.几个特珠的二叉树
1)满二又树。

2)完全二叉树

3)二叉排序树
左子树上所有结点的关键字均小于根结点的关键字;
右子树上的所有结点的关键字均大于根结点的关键字;
左子树和右子树又各是一棵二叉排序树。
4)平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1
3.二叉树的性质

5.2.2二叉树的存储结构
1.顺序存储结构
二叉树的顺序存储是指用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树
上的结点元素,即将完全二叉树上编号为i的结点元素存储在一维数组下标为i-1的分量中。
二叉树的顺序存储结构如图所示,其中0表示并不存在的空结点。


本文详细介绍了树的基本概念,包括树的定义、基本术语和性质,并深入探讨了二叉树的定义、特殊类型、性质以及存储结构。此外,还阐述了二叉树的遍历方法,如先序、中序、后序遍历,并提到了线索二叉树。文章最后提及了树与二叉树的应用,特别是哈夫曼树及其编码的构建过程。

4237

被折叠的 条评论
为什么被折叠?



