20182324 2019-2020-1 《数据结构与面向对象程序设计》实验8报告

20182324 2019-2020-1 《数据结构与面向对象程序设计》实验8报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 殷宇豪
学号: 20182324
实验教师:王志强
实验日期:2019年11月11日
必修/选修: 必修

1.实验内容

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

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

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

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

2. 实验过程及结果

  • (1)实现二叉树

  • (2)中序先序序列构造二叉树

  • (3)设计并实现一颗决策树

  • (4)将中缀表达式转换为后缀表达式

3. 实验过程中遇到的问题和解决过程

  • 问题1:命令行 javac 编译提示 “ Note: Some input files use unchecked or unsafe operations. Recompile with Xlint:unchecked for details. ”
  • 问题1解决方案:Xlint 将提供有关 Java 语言规范要求的未经检查的转换警告的更多详细信息,出现原因可能有:(1)源代码中有未使用的import(2)源代码中有未加模板的Collection(s)(3)源代码中有未加serialVersionUID的serializable类。如果不想看见这些信息,可以在编译时使用-Xlint:none参数。

  • 问题2:Java 包的定义是什么
  • 问题2解决方案:包是 Java 中有效管理类的一个机制,不同 Java 源文件中可能出现名字相同的类,如果想区分这些类,就需要通过包这个概念。包名的目的是有效地区分名字相同的类,当 Java 中源文件中的两个类的名字相同时,它们可以通过隶属于不同的包来相互进行区分。
    包语句的定义:package + 空格 + 包名。包名可以是一个标识符,也可以是多个标识符通过 “.” 运算符连接,如 cn.edu.besti.cs1823,在文件夹中一个 “.” 运算符对应一个子目录层级,即 cn.edu.besti.cs1823 的相对路径为 cn/edu/besti/cs1823

  • 问题3:命令行怎么编译包里的 java 文件
  • 问题3解决方案:javac 编译时可直接跟包名,如javac -g -d bin cn.edu.besti.cs1823.test.java,也可跟路径,如javac -g -d bin cn/edu/besti/cs1823/test.java

其他(感悟、思考等)

查找与排序是最为基本的数据结构算法,一个程序执行能力的高低完全取决于是否采用了一个好的算法,在算法的学习与使用方面还要多加努力。

参考资料

猜你喜欢

转载自www.cnblogs.com/lolipop2019/p/11876012.html