20182305 2019-2020-1 《数据结构与面向对象程序设计》实验八报告
20182305 2019-2020-1 《数据结构与面向对象程序设计》实验八报告
课程:《程序设计与数据结构》
班级: 1823
姓名: 孙铭泽
学号:20182305
实验教师:王志强
实验日期:2019年11月11日
必修/选修: 必修
1.实验内容
-
参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树
用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
自己设计并实现一颗决策树
提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,正常评分。如果用到了树,即使有小的问题,也酌情给满分)
提交测试代码运行截图,要全屏,包含自己的学号信息
2. 实验过程及结果
3. 实验过程中遇到的问题和解决过程
-
问题1:在处理前缀和中缀表达式求树的时候出现以下问题
-
问题1解决方案:经过整理发现,是我弄反了前缀和中缀表达式的位置,导致处理时本应该以前缀为准,变成了以中缀为准。递归计算时,左右子树的设置出现错误,因为根节点左右两侧内容数量不一样,导致设置的左右子树内容数组长度不同。置入的时候自然会出现错误。
-
问题2:子树无法通过链表方式与根节点相连接。
-
问题2解决方案:将节点的定义方式更改,从下往上定义节点,在根节点处定义时直接将左右两个子树的根节点连接在根节点上。