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

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

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

1.实验内容

  • 1.初始化:根据屏幕提示(例如:输入1为无向图,输入2为有向图)初始化无向图和有向图(可用邻接矩阵,也可用邻接表),图需要自己定义(顶点个数、边个数,建议先在草稿纸上画出图,然后再输入顶点和边数)
  • 2.图的遍历:完成有向图和无向图的遍历(深度和广度优先遍历)
  • 3.完成有向图的拓扑排序,并输出拓扑排序序列或者输出该图存在环
  • 4.完成无向图的最小生成树(Prim算法或Kruscal算法均可),并输出
  • 5.完成有向图的单源最短路径求解(迪杰斯特拉算法)

2. 实验过程及结果

  • (1)根据屏幕提示初始化无向图和有向图
  • (2)完成有向图和无向图的遍历
  • (3)图的拓扑排序
  • (4)无向图的最小生成树
  • (5)图的单源最短路径求解

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

  • 问题1:对 Java 中 Iterator 的理解
  • 问题1解决方案:java.util.Iterator
    在 JDK 帮助文档中这样阐述:public interface Iterator<E> 对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:

    • 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
    • 方法名称得到了改进。
      Iterator 分别有boolean hasNext()E next()void remove()三个方法。
  • 问题2:按照书上代码补充实现 LinkedBinaryTree,在 ArrayIterator 处报错。
  • 问题2解决方案:可用 ArrayList 代替,ArrayList 类的已实现接口中包含 Iterable<E> 。
  • 问题3:在查找二叉树时遇到 NullPointerException 空指针报错。
  • 问题3解决方案:已定位到问题所在,但尚未解决。同学博客提出了一个解决方法:重新编辑驱动代码,确认调用无误值已初始化。该方法亟待验证。

其他(感悟、思考等)

二叉树是一种应用较为广泛的数据结构,它支持在多种不同的情况下进行选择。通过先序和中序遍历可确定一颗唯一的二叉树。对于数据结构与算法的处理,心里一定要先有一个大致的规划,否则在实际编写的过程中会相当盲目。

参考资料

原文地址:https://www.cnblogs.com/lolipop2019/p/12008164.html

时间: 2024-07-30 18:33:21

20182324 2019-2020-1 《数据结构与面向对象程序设计》实验9报告的相关文章

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

20182324 2019-2020-1 <数据结构与面向对象程序设计>实验4报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 殷宇豪 学号: 20182324 实验教师:王志强 实验日期:2019年9月30日 必修/选修: 必修 1.实验内容 (一)Java Socket编程 1.学习蓝墨云上教材<Java和Android编程>"第16章 输入/输出 "和"第22章 网络",学习JavaSocket编程 2.结对编程

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

20182324 2019-2020-1 <数据结构与面向对象程序设计>实验5报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 殷宇豪 学号: 20182324 实验教师:王志强 实验日期:2019年10月14日 必修/选修: 必修 1.实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 参考http://www.cnblogs

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

20182324 2019-2020-1 <数据结构与面向对象程序设计>实验6报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 殷宇豪 学号: 20182324 实验教师:王志强 实验日期:2019年10月21日 必修/选修: 必修 1.实验内容 1.链表练习,要求实现下列功能: 通过键盘输入一些整数,建立一个链表: 这些数是你学号中依次取出的两位数. 再加上今天的时间. 例如你的学号是 20172301 今天时间是 2018/10/1, 16:23:49秒 数字就是

20182324 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

目录 20182324 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 20182324 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 这是一篇空博客 原文地址:https://www.cnblogs.com/lolipop2019/p/11613815.html

20182329 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结

20182329 2019-2020-1 <数据结构与面向对象程序设计>第1周学习总结 教材学习内容总结 git代码托管代码 Java的基本编程 jdb代码调试 教材学习中的问题和解决过程 问题1:在课本自学过程中,有一题是Java中有什么是不可能被识别的,我做错了一道(12345)可以被识别. 问题1解决方案:后来询问学长数字不与命令相匹配时不是有效的标识符,且标识符不能以数字为开头. 问题2:在自己对于课本代码编译时,发现自己main处显示错误 问题2解决方案:一开始我以为是我main的方

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

20182327 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名:赵天昊 学号:20182327 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证. 2. 实验过程及结果 不多说,上

20182319《数据结构与面向对象程序设计》实验二报告

20182319 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 彭淼迪 学号:20182319 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,用规定方法测试验证. 2. 实验过程及结果

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

20182331 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 高宽让 学号:20182331 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnb

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

20182330 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 魏冰妍 学号:20182330 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. 2. 实验过程及结果 编写简单计算器,借鉴c语言语法