网站大量收购独家精品文档,联系QQ:2885784924

安徽科技学院数据结构课件第七章 树与森林.ppt

安徽科技学院数据结构课件第七章 树与森林.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01/06/2002 数据结构讲义 第七章 树与森林 ⒈教学内容:7.1 树的概念与表示 7.2 基本操作与存储 7.3 树、森林与二叉树的转换 7.4 树或森林的遍历 7.5 树的应用 ⒉教学目的:⑴ 深刻理解树的定义、术语; ⑵ 领会并掌握树的各种存储结构; ⑶ 熟练掌握森林与二叉树间的相互转换; ⑷ 领会树和森林的遍历; ⑸ 了解树的简单应用。 ⒊教学重点:⑴ 树的存储结构; ⑵ 森林与二叉树的转换。 ⒋教学难点:⑴ 森林与二叉树的转换; ⑵ 判定树; ⑶ 等价关系与等价类问题。 ⒌学时安排: 4学时 7.1 树的概念与表示 树的定义及相关术语 树的表示 7.1.1 树的定义及相关术语 1.树的定义 树(Tree)是n(n≥0)个有限数据元素的集合。当n=0时,称这棵树为空树。在一棵非树T中: ⑴有一个特殊的数据元素称为树的根结点,根结点没有前驱结点。 ⑵若n1,除根结点之外的其余数据元素被分成m(m0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。树T1,T2,…,Tm称为这个根结点的子树。 可以看出,在树的定义中用了递归概念,即用树来定义树。因此,树结构的算法类同于二叉树结构的算法,也可以使用递归方法。 7.1.2 树的表示 树的表示方法有四种,各用于不同的目的。 1.直观表示法 树的直观表示法就是以倒着的分支树的形式表示,下图就是一棵树的直观表示。其特点就是对树的逻辑结构的描述非常直观。是数据结构中最常用的树的描述方法。 7.2 树的基本操作与存储 树的基本操作 树的存储结构 7.2.1 树的基本操作 树的基本操作通常有以下几种: ⑴Initiate(t)初始化一棵空树t。 ⑵Root(x)求结点x所在树的根结点。 ⑶Parent(t,x)求树t中结点x的双亲结点。 ⑷Child(t,x,i)求树t中结点x的第i个孩子结点。 ⑸RightSibling(t,x)求树t中结点x的第一个右边兄弟结点。 ⑹Insert(t,x,i,s)把以s为根结点的树插入到树t中作为结点x的第i棵子树。 ⑺Delete(t,x,i)在树t中删除结点x的第i棵子树。 ⑻Tranverse(t)是树的遍历操作,即按某种方式访问树t中的每个结点,且使每个结点只被访问一次。 7.2.2 树的存储结构 1.双亲表示法 由树的定义可以知道,树中的每个结点都有唯一的一个双亲结点,根据这一特性,可用一组连续的存储空间(一维数组)存储树中的各个结点,数组中的一个元素表示树中的一个结点,数组元素为结构体类型,其中包括结点本身的信息以及结点的双亲结点在数组中的序号,树的这种存储方法称为双亲表示法。其存储表示可描述为: #define MAXNODE 树中结点的最大个数 typedef struct { elemtype data; int parent; }NodeType; NodeType t[MAXNODE]; 7.3 树、森林与二叉树的转换 树转换为二叉树 森林转换为二叉树 二叉树转换为树和森林 7.3.1 树转换为二叉树 将一棵树转换为二叉树的方法是: ⑴树中所有相邻兄弟之间加一条连线。 ⑵对树中的每个结点,只保留它与第一个孩子结点 之间的连线,删去它与其它孩子结点之间的连线。 ⑶以树的根结点为轴心,将整棵树顺时针转动一定 的角度,使之结构层次分明。 由上面的转换可以看出,在二叉树中,左分支上的各结点在原来的树中是父子关系,而右分支上的各结点在原来的树中是兄弟关系。由于树的根结点没有兄弟,所以变换后的二叉树的根结点的右孩子必为空。 7.3.2 森林转换为二叉树 由森林的概念可知,森林是若干棵树的集合,只要将森林中各棵树的根视为兄弟,森林同样可以用二叉树表示。 森林转换为二叉树的方法如下: ⑴将森林中的每棵树转换成相应的二叉树。 ⑵第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连起来后,此时所得到的二叉树就是由森林转换得到的二叉树。 7.3.3 二叉树转换为树和森林 树和森林都可以转换为二

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档