数据结构与算法DATA STRUCTUREAND ARITHMETIC课件.pptVIP

数据结构与算法DATA STRUCTUREAND ARITHMETIC课件.ppt

  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文档。上传文档
查看更多
1、定义和性质 2、存储结构 3、遍历 顺序结构 链式结构 二叉链表 三叉链表 树 二叉树 森林 先 根 遍 历 中 根 遍 历 遍历 存储结构 遍历 双亲表示 孩子表示 左孩子-右兄弟 先根遍历 后根遍历 中序遍历 后序遍历 前序遍历 定义,构造,编码 本章小结 Huffman树 * 理解树形结构的基本概念和术语; 深刻领会二叉树的定义、性质和存储结构,熟悉二 叉树的遍历并熟练掌握遍历算法; 理解对二叉树进行中序线索化的方法和对其进行遍 历的算法 树和森林的定义、树的存储结构并掌握树、森 林与二叉树之间的相互转换方法。 理解最优树的特性,掌握建立最优树和Huffman编 码的方法。在此基础上能进行算法设计。 本章小结 * 书面作业: p125: 4-1,4-3,4-4,4-10,4-14 * 11、在结点个数为n(n1)的各棵树中,深度最小的树的深度是多少?它有多少个叶结点?多少个分支结点?深度最大的树的深度是多少?它有多少个叶结点?多少个分支结点? 12、如果一棵树有n1个度为1的结点,有n2个度为2的结点,…,有nm个度为m的结点,试问有多少个度为0的结点? 13、试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 * 14、试分别找出满足以下条件的所有二叉树: (1)二叉树的前序遍历序列和中序遍历序列相同; (2)二叉树的前序遍历序列和后序遍历序列相同; (1)二叉树的中序遍历序列和后序遍历序列相同。 15、下面是二叉树的前序遍历的递归算法: void BinaryTree:: preOrder (BinaryTreeNode *root) { if ( root) { cout root→data; preOrder ( root→leftChild ); preOrder ( root→rightChild ); } } 改写该递归算法,削去第二个preOrder ( root→rightChild ); * 习 题 四 4-1.给出本书中主要结点的树形表示(整本书、章、节、小节)。 (1)树中共有多少个结点? (2)标出叶结点。 (3)标出第3级结点。 (4)给出每个结点的度。 4-2.访问,即内蒙古大学主页。通过链接到更下一级的网页,绘出网页间的层次结构。用结点表示网页,用线连接网页。 (1)此结构一定是一棵树吗? 为什么? (2)若此结构是一棵树,指出其根和叶子。 * 4-3.有m个叶子的二叉树最多有多少个结点? 4-4.现有按后序遍历二叉树的结果为C,B,A,有几种不同的二叉树可得到这一结果? 4-5.实现顺序存储二叉树的前序遍历算法。假设二叉树的结点存储在数组a中,其中Last用于保存树中最后一个结点的位置。当位置i中没有结点时,a[i]=0。给出该程序的时间复杂度。 4-6.可以把一般二叉树看成是缺省了部分结点的完全二叉树,这样,二叉树中的每个结点都与一偶对(位置号,值)存在一一对应关系。据此可以说,一棵二叉树就是一个偶对的集合。设计一个算法输入一偶对集合,按二叉链表存储结构,构建相应的二叉树。 * 4-7.扩充BinaryTree,增加Copy()操作,复制二叉树。用两种方法实现,第一种按前序遍历复制树,第二种按后序遍历复制树。两种实现方法所需要用到的递归栈空间有什么不同? 4-8.扩充BinaryTree,增加Compare(x)操作,对当前二叉树与二叉树x进行比较。若两棵二叉树同构,则返回true,否则返回false。 4-9.设t是数据域类型为int的二叉树,每个结点的数据都不相同。数据域的前序和中序排列是否可唯一地确定这棵二叉树?如果能,实现此构造并进行时间复杂度分析。 * 4-10.设计一个算法,将一个用二叉链表存储的二叉树的每个结点的左、右子女位置交换。 4-11.画出图4.24所示二叉树的前序、中序和后序线索树的逻辑表示图。 4-12.用递归实现二叉树的中序线索化算法。 4-13.实现在中序线索树里找指定结点在后序序列中的前驱算法。 4-14.将图4.25中的树转换成二叉树。然后对树和转换成的二叉树分别进行适当的遍历,并加以对比。 * 4-15.已知一棵二叉树以二叉链表作为存储结构,编写完成下列操作的算法:对于树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的结点。 4-16.写一个按凹入表示法输出一棵树的算法。设树以二叉链表方式存储,并且每个结点所含的数据元素为一个字母。 4-17.对以下存储结构分别写出计算树的深度的算法。 (1)双亲表示法;(2)子女兄弟表示法。 4-18.设计一个完整的、基于Huffman编码的压缩-解压缩软件包,并用适当的文本文件来检验其

文档评论(0)

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

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

1亿VIP精品文档

相关文档