20182328 2019-2020-1 《数据结构与面向对象程序设计》实验八报告
20182328 2019-2020-1 《数据结构与面向对象程序设计》实验八报告
课程:《程序设计与数据结构》
班级: 1823
姓名: 张景昊
学号:20182328
实验教师:王志强
实验日期:2019年X月X日
必修/选修: 必修
1.实验内容
1、参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试。
2、基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树。
3、自己设计并实现一颗决策树。
4、输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果。
2. 实验过程及结果
-
实验1
根据课本上的代码完成二叉树的实现,再写一个驱动类进行测试。
-
实验2
在实验1的基础上继续实践,首先用先序确定一下根,再利用根来在中序中的位置找到左右子树,最后再递归。
-
实验3
自己设计并实现一颗决策树
-
实验4
构建表达式二叉树来实现实验4
3. 实验过程中遇到的问题和解决过程
- 问题1:决策树可以用switch结构吗?
- 问题1解决方案:可以,但是没有必要,因为决策树的结果只有两个“yes”或者“no”。
其他(感悟、思考等)
再一次做二叉树的进阶实验,虽然一开始不是很会,但是通过网上查资料还是弄懂了,设计决策树一开始也是不行,我是找其它同学帮忙才解决的,总之,这次实验感觉还是很困难的,给我相当大的考验。