第六章 树2009.ppt

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

第六章 树与森林; 树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。  树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。;;例1 [Joe的后代] 下图给出了J o e的后代,并按层次方式组织,其中J o e在最顶层。J o e的孩子( A n n ,M a r y和J o h n)列在下一层,在父母和孩子间有一条边。在层次表示中,非常容易地找到A n n的兄弟姐妹, J o e的后代,C h r i s的祖先等。;例2 [合作机构] 作为层次数据的一个例子,考虑下图的合作管理机构。在层次中地位最高的人(此处为总裁)在图中位置最高。在层次中地位次之的(即副总裁)在图中位于总裁之下等等。副总裁为总裁的下属,总裁是他们的上级。每个副总裁都有他自己的下属,而其下属又有他们自己的下属。在图中,在每个人与其直接下属或上级之间都有一条边互连。;例3 [政府机构] 下图是联邦政府各分支机构的层次图。在最顶层是整个联邦政府。层次结构的下一级,是其主要的隶属单位(例如不同的部)。每个部可进一步细分。这些分支在层次结构的下一级画出。例如,国防部分成陆军、海军、空军和海军陆战队。在每个机构及其分支机构间都有一条边。图中数据即为整体-部分关系的例子。; 上例文字处理器的最顶层模块被划分为下一层的几个模块,在例8 - 4中只给出4个。文件模块完成与文本文件有关的操作,如打开一个已存在文件( O p e n),打开一个新文件(N e w),保存文件(S a v e),打印文件( P r i n t),从文字处理器中退出( Q u i t)。在层次结构中下一层的每一个模块分别代表一个函数。字体模块处理与字体有关的所有功能。这些功能包括改变字体、大小、颜色等。若把具有这些功能的模块在图中画出的话,那么它们一定出现在字体模块之下。导入模块用于处理图形、表格以及其他格式的文本文件。光标模块处理屏幕上光标的移动。在接口完全设计好后,程序员可以以相对独立的方式分析、设计和开发每个模块。 ; 当一个软件系统以模块化方???划分好之后,可以很自然地以模块为单位来开发该系统。在最终完成的软件系统中,所含有的模块数与模块层次结构中节点数一样多。模块化可以促进对欲解决问题的智能化管理。通过把一个大问题系统地分解成小而相对独立的小问题,可以使大问题的解决更省力。可以将独立的问题分配给不同的人同时解决。而在一个单一模块上进行分工是非常困难的。开发模块化软件的另一好处是,分开测试一些小而独立的模块比测试一个大的模块要容易得多。层次结构清晰地给出了模块间的关系。;6.1 基本概念 6.2 二叉树 6.3 线索二叉树 6.4 树和森林 6.5 压缩与哈夫曼树; 定义6.1 树(t r e e) 树是由唯一的起始结点“根结点”( r o o t)出发的结点集合,其中,任何非根结点都有且仅有一个前趋结点,称之为该结点的父结点;任何结点都可能有多个后继结点,称之为该结点的子结点;若某结点没有后继结点,则称之为叶子结点。若存在路径vm-vm+1-…-vn,其中vi+1是vi的后继结点,则称vn为vm的子孙结点,称vm为vn的祖先结点,该路径所经历的边的个数被称为路径的长度。一个结点到它的某个子孙结点有且仅有一条路径。;其他对树的定义 树是由n (n ? 0)个结点组成的有限集合。如果n = 0,称为空树;如果n 0,则 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱; 除根以外的其它结点划分为m (m ? 0)个互不相交的有限集合T0, T1, …, Tm-1,每个集合又是一棵树,并且称之为根的子树(subTree)。每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。;其他对树的定义 t 是一个有限元素的集合,其中一个元素为根,余下的元素(如果有的话)组成t 的子树(s u b t r e e)。层次中最高层的元素为根,其下一级的元素是余下元素所构成的子树的根。;其他对树的定义 数据对象D:D是具有相同特性的数据元素的集合。 数据关系R: 若D为空集,则称为空树; 否则: 在D中存在唯一的称为根的数据元素root, 当n1时,其余结点可分为m(m0)个互不 相交的有限集 T1, T2, …, Tm, 其中每一 棵子集本身又是一棵符合本定义的树,称 为根root的子树。;定义6.2 从根结点到某个结点的路径长度被称为结点的层数。树的高度是指树中结点的最大层数。 对于根结点的层数,目前有两种规定,一种规定根结点的层数为0

文档评论(0)

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

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

1亿VIP精品文档

相关文档