zoukankan      html  css  js  c++  java
  • 20182326 2019-2020-1 《数据结构与面向对象程序设计》实验八报告

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

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

    1.实验内容

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

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

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

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

    2. 实验过程及结果

    1. 完成链树LinkedBinaryTree的实现

    2. 实现基于(中序,先序)序列构造唯一一棵二㕚树的功能

    3. 设计并实现一颗决策树

    4. 输入中缀表达式,使用树将中缀表达式转换为后缀表达式

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

    • 问题1:决策树的写法
    • 问题1解决方案:在询问了无敌结对伙伴赵同学之后,画好了决策树,再实现
    • 问题2:中缀表达式转后缀表达式
    • 问题2解决方案:
      将栈初始化为空栈;
      从左到右扫描表达式的每一个字符,执行下面操作:
      1.遇到操作数:直接输出(添加到后缀表达式中)
      2.栈为空时,遇到运算符,直接入栈
      3 .遇到左括号:将其入栈
      4 .遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。
      5 .遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈
      6 .最终将栈中的元素依次出栈,输出。

    其他(感悟、思考等)

    • 学习到各种树
    • 中缀表达式转后缀表达式这部分有点遗忘,提醒了自己要勤复习

    参考资料

  • 相关阅读:
    运行级别和root密码找回
    磁盘情况查询
    linux磁盘分区、挂载
    三、本地负载均衡器与openfeign声明式客户端
    二、Nacos服务注册与发现
    一、微服务架构演变过程
    shell工具
    Netty概述
    垃圾回收概述及算法
    执行引擎
  • 原文地址:https://www.cnblogs.com/20182326lyj/p/11878430.html
Copyright © 2011-2022 走看看