第6章树1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章树1

建立二叉链表 设二叉树BT如下图: 调用CreateBtree(BT)建立二叉链表的过程为: 读入‘A’,进队,因序号i=1,故‘A’为根节点; 读入‘B’,进队,因序号i=2,所以‘B’为A(当前队头)的左子; 读入‘C’,进队,序号i=3,‘C’为节点A的右子;此时i为奇数,表明节点A已处理完毕,出队,下一个队头为节点B; 读入虚节点‘@’,NULL进队,i=4,不作链接; 读入‘D’、‘@’、‘E’,类似以上的处理。 @ B D E C 1 2 3 4 5 6 7 @ A 读入: 序号: 队列: A 1 A? A BT B 2 B? ^ B C 3 C? ^ C @ 4 ^ D 5 D? ^ D ^ @ 6 ^ # 8 7 E? E ^ E ^ * * 二叉树的性质也是对二叉树本质的认识。 * * 在讨论二叉树性质4和5之前,先引入“满二叉树”和“完全二叉树”的概念。 * * 采用数学归纳法,先证(2)和(3)。 设n个节点的完全二叉树如图6.18所示。 * * 1 第六章 树 前面几章,我们讨论了线性结构,如线性表、栈、队列以及线性结构的扩充(多维数组和广义表)。但在系统软件和应用软件的设计中,很多情况下需要描述数据的层次关系。本章讨论一种非线性数据结构:树和二叉树(即层次结构)。它能对数据结构随机再组织,故称树为动态结构。 本章涉及内容:树和二叉树的定义、运算、性质、存储结构、二叉树的遍历、线索化和树与二叉树之间的转换等问题,最后给出二叉树的一个典型应用——Huffman(哈夫曼)编码及译码。 6.1 树的基本概念 例6-1 IBM PC DOS中文件结构是一棵树,如 图6.1: ? MFD(根节点) 子目录A 子目录B 子目录A1 子目录A2 文件 文件 文件 文件 文件 文件 有向弧MFD,B等为关系 叶节点 分支节点 树的基本概念 例6-2 编译系统中将表达式组织成一棵树,如a+b*(c-b)-e/f 的树结构如图6.2 : 6.1.1树的定义及基本操作 1.定义:树(Tree)是n(n≥0)个节点满足层次关系的有限集,当n=0时,称为空树,记为Φ;当n>0时,称为非空树。对非空树T满足下列条件: (1)T有且仅有一个称为根(root)的节点; (2)T的其余节点可分为m(m≥0)个互不相交的有限集: T1,T2..,Tm, Ti(1≤i≤m)为根的子树(subtree)。 显然,这是一个递归定义,即当子树Ti非空时,又要满足定义中的(1)和(2)。 — a b c d e f / * — + 树的定义 树T可形式化描述,即: T=(D,R) 其中D,R分别为元素集和关系集,若D=φ,则树T为空树,否则有: D={root}∪DF , root∈datatype,为根元素,DF=根下各子树Ti的元素集: (m≥0),且Di∩Dj =φ(不相交),1≤i,j≤m,i≠j。 root, ri ri 是 root的子树Ti之根,Ti=(Di, Ri)——递归; R= Di={ri} U DFi, 1≤i≤m,m>0; ф m=0 设树T:? ?? 即:D={A}∪DF,DF=D1∪D2,D1={B}∪DF1,DF1=D11∪D12,D11={E}, D12={F},D2={C},故 D={A,B,C,E,F}, 而R={A,B, B,E, B,F,A,C}。 A C B E F 有向弧的箭头可省去 树的定义及特点 从树T的定义可以看出其特点:根无上层节点(或称为父节点、直接前驱),叶节点无下层节点(或称孩子节点、直接后继),其它节点(分支节点)有唯一的一个直接前驱节点和若干个直接后继节点。 2.树的逻辑结构表示法 1)层次表示法 前面关于树的一些例子,都属于层次表示法,它比较直观地表示了树中各节点的层次关系。下面对树的讨论,都采用这种表示法。 2)嵌套表示法:如: 3)广义表表示法:如例6-5中的树,可表示为:( A ( B (E , F), C) )。 A C B E F A C B E F 3.树的基本术语 (1)节点:由数据元素(data)及若干连接子树的分支(指针)组成一个节点,即节点=data+pointers,其逻辑形式和存储形式如图6.7所示。 逻辑形式: 存储形式:

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档