《树和二叉树》PPT课件.ppt

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

第六章 树和二叉树 第六章 树和二叉树 6.1 树的定义和基本概念 6.2 二叉树 6.3 遍历二叉树 6.4 树和森林 6.6 哈夫曼树及其应用 树型结构的简单描述 树型结构是一类重要的非线性结构。树型结构是结点之间有分支,并且具有层次关系的结构,它非常类似于自然界中的树。 树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。 树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程等等。 6.1 树的定义和基本术语 递归定义:树(Tree)是n(n=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件: (1)有且仅有一个特定的称为根(Root)的结点; (2)其余的结点可分为m(m=0)个互不相交的子集T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为子树(Subtree)。 注:树的递归定义将为实现树的各种运算提供方便 树的示例及分析 树的其它定义 树是包含n个结点的有限集合,在这个集合上定义了一个唯一的关系,它满足下列条件: 集合中存在唯一的一个结点,它没有前驱,称为树的根 除根以外,集合中的每个结点都有且仅有一个前驱结点 集合中包括树根结点的每个结点可以有任意多个(含0个)后继 树的抽象数据类型定义见教材P118 在不同的软件系统中树的基本操作可能不同 树的表示 树形表示法: 最常用的一种表示法。结点之间的关系通过连线表示,方向隐含为从上向下 二元组表示法: Tree=(D, R) 集合图表示法: 每棵树对应一个圆形 广义表表示法: 类似广义表的形式 凹入表表示法: 类似书的编目 注:(1) 树表示方法的多样性,说明树结构在日常生活中及在计算机程序设计中的重要性;(2) 分等级的分类方案都可用层次结构表示,也就是可通过树形结构描述。 树的基本术语 根—树中唯一没有前驱的结点。 度(结点的度和树的度)—一个结点的子树的数目,称为结点的度。树中结点的度的最大值,称为树的度。 叶—度为0的结点,也称为终端结点。 分枝结点—度大于0的结点称为分支结点或非终端结点(分为单分支结点、双分支结点等等)。 树的基本术语(续) 双亲、孩子、祖先、子孙 结点的子树的根,称为结点的孩子,而该结点则称为它的孩子的双亲。某结点的祖先指从根到该结点的一条路径上的全部结点,而结点的子孙是指该结点的子树中的全部结点。 兄弟、堂兄弟—同一个结点的孩子,互为兄弟,其双亲为兄弟的结点称为堂兄弟。 树的基本术语(续) 结点的层次、树的深度(高度)—根的层次为第一层,根的孩子为第二层,一个结点的层次为L,则它的孩子的层次为L+1。一棵树中结点的最大层次,称为树的深度或高度。 有序树、无序树--若树中各结点的子树是按照一定的次序从左向右安排的,称为有序树。否则称为无序树。 森林—m(m=0)棵互不相交的树的集合。 6.2 二叉树 二叉树是另一种树形结构,它的特点是,每个结点至多只有两棵子树,而且其子树有左右之分,不能任意颠倒。 二叉树在树结构的应用中起着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。 二叉树的定义 定义:二叉树是由n(n=0)个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。 这也是一个递归定义。二叉树可以是空集合,根可以有空的左子树或空的右子树。二叉树不是树的特殊情况,它们是两个概念。 二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。 二叉树抽象数据类型定义见教材P121 二叉树的五种基本形态 二叉树的性质 性质1: 在二叉树的第i层上至多有2i-1个结点(i=1)。 证明:当i=1时,只有一个根结点,2i-1=20 =1,命题成立。 假定第i-1层上至多有2i-2个结点。由于二叉树每个结点的度最大为2,故在第i层上最大结点数为第i-1层上最大结点数的二倍,即2×2i-2=2i-1。 二叉树的性质(续) 性质2:深度为k的二叉树至多有2k-1个结点(k=1). 事实上,深度为k的二叉树的最大的结点数为二叉树中每层上的最大结点数之和,由性质1得到每层上的最大结点数, ?(第i层上的最大结点数)= ?2i-1=2k–1 二叉树的性质(续) 性质3: 对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。 事实上,设二叉树中度为1的结点数为n1,二叉树中总结点数为N,因为二叉树中所有结点的度均小于或等于2,所以

文档评论(0)

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

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

1亿VIP精品文档

相关文档