森林与二叉树的转换.PPT

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

第6章 树和二叉树 6.1 树 6.1.1树的定义 树是由n(n≥0)个元素构成的有限集合。n=0称为空树;n0称为非空树。 任意一颗非空树,都满足: (1)有且仅有一个称为根的结点 ,没有前驱结点。 (2)其余结点被分成m(m≥0) 个互不相交的有限集T1,T2,…, Tm,其中每一个集合Ti(1≤i≤m) 又是一颗树,称为根的子树。 6.1.1树的定义 结点的度:结点所拥有子树的个数称为结点的度。 树的度:树中所有结点的度的最大值称为树的度。 叶结点:度为零的结点称为叶结点。也称终端结点或叶子 分支结点:度不为零的结点称为分支结点。也称非终端结点。除根结点以外,分支结点也称为内部结点。 孩子结点和双亲结点:树中一个结点的子树的根结点称为孩子结点。该结点就称为孩子结点的双亲结点。 兄弟结点:具有同一双亲的孩子结点互为兄弟结点。 结点的祖先:从根到该结点所经分支上的所有结点,称为结点的祖先。 6.1.1树的定义 结点的子孙:以某结点为根的子树中的任一结点都称为该结点的子孙。 结点的层次:树是一种层次结构,树中的每个结点都处于某个层次上。 树的深度:树中所有结点的层次的最大值称为树的深度。也称为树的高度。 有序树:如果树中各结点的子树是按照从左到右有序排列的,即各子树的位置不能交换,这样的树称为有序树。 无序树:如果树中各结点的子树的排列是无序的,称为无序树。 森林:m(m≥0)颗互不相交的树的集合称为森林。 6.1.2树的表示方法 1.树形表示法 以圆圈表示结点,以连线表示结点之间的关系。 2. 嵌套集合表示法 也称为文氏图表示法。用圆圈表示 树、子树和结点,并用包含关系表示 结点间的关系。 3.凹入表示法 结点逐层缩进,即孩子结点 缩进于双亲结点。 4.广义表表示法 用广义表表示树。用名称表示树的根,括号内表示子树。 6.1.3 树的抽象数据类型 6.1.4 树的存储结构 1.双亲表示法 双亲表示法就是以一组地址连续的存储空间存储树的结点。其中,每个结点包含数据域和指针域。数据域存放数据元素的值,指针域存放一个指向其双亲的指针。 6.1.4 树的存储结构 2.孩子表示法 在结点中设置指向每个孩子的指针域,利用指针指向该结点的所有孩子结点。 大多采用按树的度设置结点的指针域的个数。 6.1.4 树的存储结构 3.孩子兄弟表示法 在结点中设置两个指针域,一个指针域指向该结点的第一个孩子,另一个指针域指向其右兄弟。 6.2 二叉树 6.2.1 二叉树的定义 二叉树是n(n≥0)个结点构成的有限集合。当n=0时,它是一颗空二叉树;当n0时,它由一个根结点和两颗互不相交的、分别称作左子树和右子树的二叉树构成。 (1)二叉树的度只能是0、1或2; (2)二叉树是有序树,它的左、右子树是有次序的,即使只有一颗子树也要区分是左子树还是右子树。 6.2.1 二叉树的定义 (1)满二叉树 如果二叉树的所有分支结点都有左子树和右子树,并且所有叶子结点都在二叉树的最下一层,则称这样的二叉树为满二叉树。 (2)完全二叉树 在一颗具有n个结点的二叉树中,如果它的结构与满二叉树的前n个结点的结构相同,则称这样的二叉树为完全二叉树。 6.2.1 二叉树的定义 【例6-3】所示的4颗二叉树中,哪颗是完全二叉树? 3.二叉树的抽象数据类型 6.2.2 二叉树的性质 性质1非空二叉树的第i(i≥1)层上最多有2i-1个结点 证明:使用归纳法。 当i=1(第1层)时,非空二叉树只有一个根结点,即21-1=1,命题成立。 假定对于第i-1层命题成立,即非空二叉树第i-1层最多有2i-2个结点。 由二叉树的定义可知,二叉树的每个结点最多有两个孩子结点,因此,第i层的结点总数最多是第i-1层结点数的2倍,即第i层最多有2×2i-2=2i-1个结点。命题得证。 6.2.2 二叉树的性质 性质2 深度为h (h≥1)的非空二叉树最多有2h-1个结点。 证明: 只有满二叉树才能出现最多结点个数,即二叉树的每层结点数都应该达到最大结点数2i-1(由性质1得到)。因此,深度为h的二叉树所具有的最多结点数为 6.2.2 二叉树的性质 性质3 在任意非空二叉树中,若度为0(叶子结点)的结点数为n0,度为2的结点数为n2,则关系n0= n2+1成立。 证明: 设度为1的结点个数为n1,则二叉树的结点总数为 n=n0+n1+n2 (6-1) 除了根结点以外,每个结点都有一个直接前驱,即每个结点都有一个分支与之相连,因此,具有n个结点的二叉

文档评论(0)

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

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

1亿VIP精品文档

相关文档