20192310 实验八《数据结构与面向对象程序设计》实验报告
20192310 2020-2021-1 《数据结构与面向对象程序设计》实验八报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 严嘉钰
学号: 20192310
实验教师:王志强
实验日期:2020年12月03日
必修/选修: 必修
1.实验内容
1.参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台
2.基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树
用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台
3.自己设计并实现一颗决策树
提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台
4.输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,正常评分。如果用到了树,即使有小的问题,也酌情给满分)
提交测试代码运行截图,要全屏,包含自己的学号信息
实验过程
实验一
https://gitee.com/besti1923/java-learning/tree/master/out/test/java-learning/BinaryTree
实验一较为简单,主要是理解树的概念
实验二
https://gitee.com/besti1923/java-learning/tree/master/out/test/java-learning/BinaryTree
实验二代码量虽然少,但需要设计递归,思考起来最复杂
实验三
https://gitee.com/besti1923/java-learning/tree/master/BinaryTree
实验三比较简单,实现的过程也较有乐趣,贴合实际
实验四
https://gitee.com/besti1923/java-learning/blob/master/BinaryTree/ReversePolish.java
实验四耗时比较长,可能是我的实现过程比较低级,导致小问题不断
3. 实验过程中遇到的问题和解决过程
~问题1:判断时总失败
解决:混用了equals和==,修改后判断正常
~问题2:每个实验都疯狂报错
解决:单步调试一步步解决
思考与感悟
设计算法比单纯做码农更费头发,算法工程师比码农级别高不是没有道理的