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

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

课程:《程序设计与数据结构》

班级: 1823

姓名: 曹骞

学号: 20182323

实验教师:王志强

实验日期:2019年12月8日

必修/选修: 必修

1.实验内容

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

2. 实验过程及结果

有向图:

无向图:

遍历:


拓扑排序

最小生成树

迪杰斯特拉算法

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

  • 问题1:在编写无向网络时需要写一个最便宜路径的问题,当时没有想出来怎么去写,找了一下书上关于这个问题的描述,是关于用Dijkstra算法来解决的。那么,Dijkstra算法具体如何解决问题?
  • 问题1解决方案:

    (1) 初始时,S只包含起点s;U包含除s外的其他顶点,且U中顶点的距离为"起点s到该顶点的距离"[例如,U中顶点v的距离为(s,v)的长度,然后s和v不相邻,则v的距离为∞]。

    (2) 从U中选出"距离最短的顶点k",并将顶点k加入到S中;同时,从U中移除顶点k。

    (3) 更新U中各个顶点到起点s的距离。之所以更新U中顶点的距离,是由于上一步中确定了k是求出最短路径的顶点,从而可以利用k来更新其它顶点的距离;例如,(s,v)的距离可能大于(s,k)+(k,v)的距离。

    (4) 重复步骤(2)和(3),直到遍历完所有顶点。

其他(感悟、思考等)

这次的倒数第二次实验了,加油!

参考资料

Dijkstra算法之 Java详解

原文地址:https://www.cnblogs.com/caoqian1314/p/12008336.html

时间: 2024-08-11 03:30:41

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

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

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

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

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

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

学号20182323 2019-2020-1 <数据结构与面向对象程序设计>实验七报告# 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>实验七报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 曹骞 学号: 20182323 实验教师:王志强 实验日期:2019年10月21日 必修/选修: 必修 1.实验内容 1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最

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

目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第2.3周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 点评模板: 点评过的同学博客和代码 其他(感悟.思考等,可选) 学习进度条 参考资料 目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第2.3周学习总结 教材学习内容总结 第二章 print和println两种方法的区别 关键概念:pr

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

目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 点评模板: 点评过的同学博客和代码 学习进度条 参考资料 目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 教材学习内容总结 1.对象和类的关系:(类是对象的蓝图) 2.理解对象的状态(属性)和行为(操作): 3.理解类的分配

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

目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第8周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 结对及互评 点评模板: 点评过的同学博客和代码 学习进度条 参考资料 目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第8周学习总结 教材学习内容总结 第13章 查找与排序 查找 线性查找:属于无序查找算法.从序列一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相

《数据结构与面向对象程序设计》第01周学习总结

目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第01周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 点评模板: 点评过的同学博客和代码 其他(感悟.思考等,可选) 学习进度条 参考资料 目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第01周学习总结 教材学习内容总结 学习了java的历史与发展. 学习了一些软件工具,开发环境等. 掌握

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. 实验过程及结果