《软件技术基础》课件第6章.ppt

  1. 1、本文档共152页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第6章树

6.1树的概念

6.2二叉树

6.3二叉树的遍历

6.4线索二叉树

6.5树和森林

6.6二叉排序树

6.7哈夫曼树及其应用

习题6

6.1树的概念

树是一种常用的非线性结构。我们可以如下定义:

树(Tree)是n(n≥0)个结点的有限集合,且满足:

(1)若n=0,则称为空树;否则,有且仅有一个特定的结点

时被称为根;

(2)当n1时,其余结点被分成m(m0)个互不相交的子集

T1,T2,…,Tm,每个子集又是一棵树,并且称为根的子树。

这是递归形式的定义,即树的定义中又用到了树的概念。

这种递归定义很好地刻画了树的固有特性。在图6.1中,(a)是

只有根结点(n=1)的树;(b)是树的一般形式,其中A是根结点,

其余结点又分成3棵互不相交的子树T1、T2和T3,分别以结点B、

C和D为根结点。同样,在结点B和C的下面,又可以得到以E、

F和G为根结点的树。树的定义及例图6.1展示了一种按层次关

系组织的分支结构。树的根结点没有前趋,其直接后继处于同

一层次上。

树的表示还有其他一些形式,例如嵌套集合、广义表、目

录表示等,对于图6.1(b),这三种形式分别对应图6.2中的(a)、

(b)和(c)。

图6.1树的示例

图6.2树的其他表示

在树结构中,结点之间的关系可以用家族关系进行形象地

描述。下面列出树形结构的一些常用术语。

结点:包含一个数据元素及若干指向其子树根的分支。

结点的度:结点拥有的子树个数。

叶子(终端结点):度为0的结点。

非终端结点:度不为0的结点。

结点的层次:树中根结点的层次为1,根结点子树的根为

第2层,以此类推。

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

树的深度:树中结点层次的最大值。

孩子:结点子树的根称为这个结点的孩子。

双亲:结点的直接上层结点称为该结点的双亲。

兄弟:同一双亲的孩子互称为兄弟。

堂兄弟:双亲在同一层上的结点互称为堂兄弟。

路径:从某个结点到其子树中另一个结点之间的分支,构

成两个结点之间的路径。

子孙:以某结点为根的子树中的所有结点都被称为该结点

的子孙。

祖先:从根结点到该结点路径上的所有结点。

森林:m(m≥0)棵互不相交的树的集合。

有序树、无序树:如果树中每棵子树从左向右的排列拥有

一定的顺序,不得互换,则称为有序树,否则称为无序树。在

有序树中,最左边的子树的根称为第一个孩子,最右边的子树

的根称为最后一个孩子。

尽管树的存储结构可以有多种形式,但主要使用的存储结

构仍然是顺序存储和链式存储。顺序存储时,必须采用某种方

式的线性化方法,使树形结构的结点成为一个线性序列,然后

才可以存储;链式存储时,可以采用多指针域的结点形式,每

一个指针域指向一棵子树的根结点。

6.2二叉树

6.2.1二叉树的定义

二叉树是另一种树形结构。它与树形结构的区别是:每个

结点最多有两棵子树;子树有左右之分。

利用递归的形式可以得到二叉树的定义:二叉树是n(n≥0)

个结点的有限集合。二叉树或为空(n=0),或是由一个根结点

加上两棵分别称为左右子树的,互不相交的二叉树组成。

根据定义,二叉树可以有5种基本形态,如图6.3所示。

图6.3二叉树的5种基本形态

6.2.2二叉树的性质

二叉树具有下列5个重要的性质。

性质1:在二叉树的第i层上最多有2i-1个结点(i≥1)。

证明:可用数学归纳法予以证明。

当i=1时,有2i-1=20=1,显然第一层上只有一个根结点,故

命题成立。

设当i=k时成立,即第k层上至多有2k-1个结点。

当i=k+1时,由于二叉树的每个结点至多有两个孩子,所

以第k+1层上至多有2×2k-1=2k个结点,故命题成立。

性质2:深度为k的二叉树最多有2k-1个结点(k≥1)。

由性质1可得,1至k层各层最多的结点个数分别为:20,21,

22,…,2k-1。该等比数列之和为

k

2i12k1(6-1)

i1

性质3:对任意一棵二叉树T,如果其终端结点个数为n0,

度为2的结点个数为n2,则n0=n2+1。

证明:设度为1的结点数为n1,则一棵二叉树的结点总数

n = 

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档