20202330 金晨 实验八《树 》实验报告
20202330 2021-2022-1 《数据结构与面向对象程序设计》实验八报告
课程:《程序设计与数据结构》
班级: 2023
姓名: 金晨
学号:20202330
实验教师:王志强
实验日期:2021年11月19日
必修/选修: 必修
1.实验内容
-
参考教材PP16.1,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树
用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
自己设计并实现一颗决策树
提交测试代码运行截图,要全屏,包含自己的学号信息
课下把代码推送到代码托管平台 -
输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,正常评分。如果用到了树,即使有小的问题,也酌情给满分)
提交测试代码运行截图,要全屏,包含自己的学号信息
2. 实验过程及结果
1.二叉树
代码链接:二叉树
2.(1)二叉树依据先序序列和中序序列
代码链接:中序和先序序列
2.(2)test测试
import java.util.Scanner; public class treetext { public static void main(String[] args) { System.out.println("请输入一个二叉树的前序序列"); Scanner scan = new Scanner(System.in); String a = scan.nextLine(); String[] a2 = a.split(" "); System.out.println("请输入一个二叉树的中序序列"); String b = scan.nextLine(); String[] b2 = b.split(" "); creattree ct = new creattree(); System.out.println(ct.buildTree(a2,b2)); } }
3.自己设计并实现一颗决策树
代码链接:决策树
8个爆红为if和for 的大括号问题,仍可运行,但不提倡。
4.输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果
代码链接:转换
其他(感悟、思考等)
树的实验很难,心态有点裂。