实验8
Posted zjwbk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验8相关的知识,希望对你有一定的参考价值。
学号 20182315 《数据结构与面向对象程序设计》实验八报告
课程:《程序设计与数据结构》
班级: 1823
姓名: 邹家伟
学号:20182315
实验教师:王志强
实验日期:2019年X月X日
必修/选修: 必修
1.实验内容
参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二?树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL.
自己设计并实现一颗决策树
输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果
2. 实验过程及结果
实验一即选择性理解书上的代码,重点理解先序与后序中序得细微区别。
实验二需巧妙运用两次递归, 顺序为常规顺序,先右后左。
实验3建立决策二叉树,方法简单,只需存入你想出现得字符串,在运用其中相应得构造方法,即可完成建树,再使用几个if判断左移右移得方法,即可完成决策二叉树得建立。
实验4,将先序转为后序存起来遇到很大麻烦,起初不知道如何操作才能使数字元素按顺序排好。经搜索得,可将数字与运算符分别存入两个栈中,读到运算符时,比较该运算符与栈顶运算符得先后顺序,选择放入数字栈里还是存入运算符栈里。
3. 实验过程中遇到的问题和解决过程
问题1:在完成实验2的过程中发现,自己对于中中后序的理解还是不够深入,无法通过三者的联系发现规律。
- 问题1解决方案:以此实验为例,首先根据前序,找到其根节点,再转向中序,中序找到该节点,节点前就是左二叉树,节点右就是有二叉树,先查找左二叉树,
问题2:在实验四中,如图所示,起初没有声明对象直接将所有bottom写入栈中,使得盛放运算符的栈不合理。
问题2解决方案:将你想存入的内容写成一个实例化结点,将该节点存栈,否则存入button节点其所自带的next也会保留下来,输出时,一个个next将所有的内容输出出来。
- 调试代码时,这几段代码屡屡报错,经单步调试后发现原因。
调试发现原因,这几段代码涉及数据存入取出,而数据取出的时候,也应进行相应的类型转换。
其他(感悟、思考等)
本实验的难点在实验4,本次实验4是一个比较综合的实验题,考到了前面所用的知识,这样我意识到期末考试来临了,不光Java,其他科目都应该进行幸运复习。。。
参考资料
以上是关于实验8的主要内容,如果未能解决你的问题,请参考以下文章