第四章_树的知识点.docVIP

  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. 二叉树的顺序存储。要求掌握该存储方法,能够画出存储二叉树的数组图示,如图4.8(c),并掌握从一个节点访问其子节点、父节点之方法。 4.二叉树的链接存储。要求掌握节点结构,能够画出存储结构图,如图4.9(b)。链接存储结构上的相关操作,包括递归和非递归的,通过上机实现可达到完全掌握的程度。 5.线索二叉树 6.树和森林树的顺序存储Father数组 7.树的链接存储Father链接结构孩子链表链接结构图4. 孩子链表表示图4.父亲孩子链表表示左儿子—右兄弟链接结构4.40 的左儿子——右兄弟链接结构 8.树和森林的遍历 9.压缩与哈夫曼树 学习指导: 首先掌握概念和基本知识点。本文中列出的所有图示知识点最简单,可最先掌握。 书上给出了很多算法。这些算法对应树结构上的一些操作。我们可以将这些算法看成是一些例题。书上给出这么多算法的主要目的是培养学生读算法、写算法的能力。有些算法非常经典,如利用栈实现的非递归算法和利用队列实现的层次遍历算法。经典的算法有助于我们学习别人的算法设计技巧,我们可以利用同样的技巧去解决其他类似的问题。我们看的算法多了,设计算法的思路就广。通过反复接触非递归的遍历算法,我们就知道凡是基于非递归遍历的问题,都可以用这个框架去解决。最重要的是同学们在头脑中要形成一种方法,解决问题的方法。把这些算法的学习看成是解决问题之方法的学习。学习最重要的是把前人的方法变成自己的方法。不要把这么多算法看成是一种压力,看成是一种开阔视野的东西,你会感谢这本书的作者,收集了这么多有思想的算法。书中的算法有些可能存在错误,在学习过程中注意发现。 学习知识是为了应用。要选一本比较好的习题集,多做些题,有助于基本知识和求解问题之方法的掌握。 学习是个循序渐进的过程,不是一蹴而就的事,要慢慢来。如果把会的知识看成是一个集合,那么学习的过程就是将这个集合逐渐扩大的过程。每个领域的知识都是一片海洋,谁都不可能掌握全部,但只要掌握了基本原理,融会贯通就等于是拥有了一片海洋。 附录: 先根遍历的非递归实现 Public void iterativePreorder() { IntBSTNode p=root; Stack travStack = new Stack(); If (p!=null) { travStack.push(p); while (!travStack.isEmpty()) { p=(IntBSTNode)travStack.pop(); p.visit(); if (p.right!=null) travStack.push(p.right); if (p.left!=null) travStack.push(p.left); } } } 后根遍历的非递归实现 Public void iterativePostorder() { BSTNode p=root, q=root; Stack travStack=new Stack(); While (p!=null) { for (;p.left!=null;p=p.left) travStack.push(p); while (p!=null (p.right==null || p.right==q)) { p.visit(); q=p; if (travStack.isEmpty()) return; p= (BSTNode) travStack.pop(); } travStack.push(p); p=p.right; } } 中根遍历的非递归实现 Public void iterativeInorder() { IntBSTNode p=root; Stack travStack =new Stack(); While (p!=null) { While (p!=null) { If (p.right!=null) travStack.push(p.right); travStack.push(p); p=p.left; } p=(IntBSTNode)travStack.pop(); while (!travStack.isEmpty()p.right==null) { p.visit(); p=(IntBSTNode)travStack.pop(); } }

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档