20202330 金晨 实验八《树 》实验报告

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

课程:《程序设计与数据结构》
班级: 2023
姓名: 金晨
学号:20202330
实验教师:王志强
实验日期:2021年11月19日
必修/选修: 必修

1.实验内容

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

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

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

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

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.输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果

 

 代码链接:转换

 

其他(感悟、思考等)

 树的实验很难,心态有点裂。


posted @ 2021-11-18 09:05  航行肥鸡  阅读(91)  评论(0编辑  收藏  举报