面向对象核心概念-Java实验三.docxVIP

  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文档。上传文档
查看更多
面向对象核心概念-Java实验三

一.实验目的掌握Java的面向对象核心概念。二.实验软件环境Oracle Netbeans IDE 7三.实验内容1.(必做)编程题:由数据结构可知,已知一棵二叉树的前序和中序遍历序列,则可以唯一还原出一棵二叉树请编写一个Java的GUI程序,要达到以下两个目标:A.在界面上有两个输入框,分别接受前序和中序的字符串输入(用大写字母表示树中结点),有一个按钮Run,按下之后在一个Label处显示出该二叉树的后序序列。B.在A的基础上,把二叉树用一种可视化的方式画出来。如:以上“可视化”的二叉树是程序根据你所输入的前序和中序列自动生成的,可以考虑自己编程实现,也可以考虑使用现成的Java Tree控件。请自行在互联网上查找可用的实现。2.(必做)设计题:请设计一组类、类的继承层次和接口,对上述的可视化二叉树进行封装,然后用该封装好的可视化二叉树模块来展示一个堆排序的过程和一个哈夫曼树的构造过程。本题的重点是对可视化二叉树进行设计和包装,然后再设计一个堆排序的类和一个哈夫曼树的类,若两者都能使用同一个可视化的二叉树类(或其子类),那你的设计就是成功的了。请给出框架性代码(类定义、方法定义、成员变量定义),界面设计,方法调用序列,以及必要的文字和图表说明来细化你的设计。四.实验的结果及分析1、前序后序字符串生成程序:程序的设计思路:程序包含一个节点类(BiTreeNode)和一个树类(BiTree),前序遍历字符串储存为一个队列,中序遍历字符串储存为一个字符串。根据二叉树的Top-down递归构造过程,树的生成叫由节点递归进行,前序字符串队列在每生成一个节点后就将该节点出队,而中序字符串则会以该节点的字符进行二分。BiTreeNode类成员一览:主要类成员说明:strLeftSubTree对象和strRightSubTree对象:分别是左右子树的中序历遍字符串。构造方法:private BiTreeNode(String strOriTree, final BiTreeNode btnParent, String strInputedNodeData) {this.btnRoot = btnParent;String[] strArrSplited = strOriTree.split(strInputedNodeData, 2); //局限:不能识别重复的元素this.strLeftSubTree = strArrSplited[0];this.strNodeData = strInputedNodeData;this.strRightSubTree = strArrSplited[1]; }btnNewNode方法:改方法调用类的构造方法,返回新的节点,并对节点进行计数。public static BiTreeNode btnNewNode(String strOriTree, final BiTreeNode btnParent, String strInputedNodeData) { BiTreeNode btnNewNode = new BiTreeNode(strOriTree, btnParent, strInputedNodeData); intNodesNum++; //节点计数 return btnNewNode; }isFind方法:在字符串中查找队列首个元素,并返回布尔值结果。private static boolean isFind(String strInputed, final LinkedListString queInputed) { if(queInputed.isEmpty()) { return false; } else if(strInputed.indexOf(queInputed.peek()) == -1) { return false; } else { return true; } }GenerateSubTree方法:由上自下递归创建子树。public void GenerateSubTree(LinkedListString quePreorder) { BiTreeNode btnSubNode; if(BiTreeNode.isFind(this.strLeftSubTree, quePreorder)) { //weird 不能用matches btnSubNode = BiTreeNode.bt

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档