Java教程

20202329 实验八 《数据结构与面向对象程序设计》实验报告

本文主要是介绍20202329 实验八 《数据结构与面向对象程序设计》实验报告,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# 20202329 2021-2022-1 《数据结构与面向对象程序设计》实验八报告

课程:《程序设计与数据结构》
班级: 2023
姓名: 张焘
学号:20202329
实验教师:王志强
实验日期:2021年11月18日

必修/选修: 必修

一、实验内容

1.参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

2.基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树
用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

3.自己设计并实现一颗决策树
提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

4.输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,正常评分。如果用到了树,即使有小的问题,也酌情给满分)
提交测试代码运行截图,要全屏,包含自己的学号信息

二、实验过程及结果

1.参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

 

 

 

 码云:https://gitee.com/besti2023javads/zt20202329/blob/master/LinearNode.java

           https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree1Test.java等

2.基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树
用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

 

 https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree2.java

https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree2Test.java

3.自己设计并实现一颗决策树
提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台

 

 https://gitee.com/besti2023javads/zt20202329/blob/master/DecisionTree.java

 https://gitee.com/besti2023javads/zt20202329/blob/master/Expert.java

4.输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,正常评分。如果用到了树,即使有小的问题,也酌情给满分)
提交测试代码运行截图,要全屏,包含自己的学号信息

 

 

https://gitee.com/besti2023javads/zt20202329/blob/master/FixTest.java

https://gitee.com/besti2023javads/zt20202329/blob/master/Fix.java

三. 实验过程中遇到的问题和解决过程
- 问题1:idea每次打开都需要重新install,占据大量内存
- 问题1解决方案:目前自己的解决办法是把路径设置到桌面上,每次启动时把桌面上的进行删除

老问题,因为在LinkedBinaryTree中的节点的Element选择了自定义的变量类型,导致Test中的assertEquals()方法无法正常的将两个类型的数据进行比较,仍然是通过(“”+变量)的方式来讲两个类型的数据都统一转换为String类型数据进行比较

- 问题2:在实验一的运行时会出现Expected与Actual不符合的情况

- 问题2解决方案:本次不符合的原因是因为顺序的问题,根据提示就可以改正。之前也遇到过类似的问题是因为数和数之间要用空格隔开。


## 其他(感悟、思考等)

最近学的树,相对来说比较熟悉,毕竟在之前的离散数学课上也学过。所以在课上感觉对理论知识的掌握还是很不错的。但一旦进行代码的编写时,一切又回到了原点,无助,无绪,无耐心,很暴躁,不会。希望在接下来为数不多的几次课里面能够再多学习一点,对于代码的编写能够多掌握一点。除此之外,自己也需要在课下多下功夫进行练习(虽然每次 都是这样想的,但执行起来似乎就被遗忘在了脑后)。还是希望自己能够多动脑,多动手,不断探索吧!

 

这篇关于20202329 实验八 《数据结构与面向对象程序设计》实验报告的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!