Java数据结构树实验报告总结_20172302 《Java软件结构与数据结构》实验二:树实验报告...

课程:《Java软件结构与数据结构》

班级: 1723

姓名: 侯泽洋

学号:20172302

实验教师:王志强老师

实验日期:2018年11月5日

必修/选修: 必修

实验内容

(1)参考教材p212,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder;用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息

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

(3)自己设计并实现一颗决策树;提交测试代码运行截图,要全屏,包含自己的学号信息

(4)输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果;提交测试代码运行截图,要全屏,包含自己的学号信息

(5)完成PP11.3;提交测试代码运行截图,要全屏,包含自己的学号信息

(6)参考http://www.cnblogs.com/rocedu/p/7483915.html对Java中的红黑树(TreeMap,HashMap)进行源码分析,并在实验报告中体现分析结果。(C:\Program Files\Java\jdk-11.0.1\lib\src\java.base\java\util)

实验过程及结果

(1)实验一

完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)

这里的方法编写在学习树时都有写过,所以直接编写了测试类,实验结果如图

eca0565d4042bf0607631ef111f6e7cf.png

(2)实验二

基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,这个需要新建类,类中写了公有方法generate0,generate0再去调用私有方法generate,

这个主要是利用传进来的先序和中序的字符串,确定根结点,然后再确定其左右孩子,接下来递归该过程,直至将该字符串读取完成。

实验结果截图:

3fbcfed8f04efbe48e280b854fac3df9.png

(3)实验三

自己设计并实现一颗决策树,设计了一棵决策树去确定1至6之间的某个数。

11

Is the number greater than 3?

Is the number greater than 2?

Is the number greater than 4?

Is the number greater than 1?

Is the number greater than 5?

The number is 1.

The number is 2.

The number is 3.

The number is 4.

The number is 5.

The number is 6.

3 5 6

1 3 7

4 9 10

2 8 4

0 1 2

实验结果见图:

f01a9de88c8a14e9e7e8bc040b167c92.png

(4)实验四

输入中缀表达式,使用树将中缀表达式转换为后缀表达式,这里是使用两个栈,一个是操作符栈,另一个是操作数栈,其中操作数栈是操作数是以树的类型进行存储的。实验结果见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值