20202311 2021-2022-1《数据结构与面向对象程序设计》实验九报告
课程:《程序设计与数据结构》
班级: 2023
姓名:余博雅
学号:20202311
实验教师:王志强
实验日期:2021年9月23日
必修/选修: 必修
##一、实验内容
(1) 初始化:根据屏幕提示(例如:输入1为无向图,输入2为有向图)初始化无向图和有向图(可用邻接矩阵,也可用邻接表),图需要自己定义(顶点个数、边个数,建议先在草稿纸上画出图,然后再输入顶点和边数)(2分)
(2) 图的遍历:完成有向图和无向图的遍历(深度和广度优先遍历)(4分)
(3) 完成有向图的拓扑排序,并输出拓扑排序序列或者输出该图存在环(3分)
(4) 完成无向图的最小生成树(Prim算法或Kruscal算法均可),并输出(3分)
(5) 完成有向图的单源最短路径求解(迪杰斯特拉算法)(3分)
PS:本题12分。目前没有明确指明图的顶点和连通边,如果雷同或抄袭,本次实验0分。
实验报告中要根据所编写的代码解释图的相关算法
码云链接:初始化 · 204e62f · 2023Java_DS/余博雅20202311. - Gitee.com
2.图的遍历
图的构建:
实验代码:
实验结果:
码云链接:遍历 · 45ff01a · 2023Java_DS/余博雅20202311. - Gitee.com
3.拓扑排序
实验代码:
使用图:
实验结果:
实验代码:拓扑排序 · e98df29 · 2023Java_DS/余博雅20202311. - Gitee.com
4、最小生成树(使用Prim算法)
图的构建:
该图的一个最小生成树为:
实验代码:
码云链接:Prim · 0be3a90 · 2023Java_DS/余博雅20202311. - Gitee.com
实验结果:
5、最短路径
构建有权有向图:
最短路径有:
实验代码:
码云链接:最短路径 · 38e79a7 · 2023Java_DS/余博雅20202311. - Gitee.com
实验结果:
## 三. 实验过程中遇到的问题和解决过程
问题1:在Prim算法时,调整边集那部分写了很久
解决思路:主要还是对这个算法不够熟悉吧,上课听着貌似还挺好懂,一到写代码就晕了
## 其他(感悟、思考等)
图真的涵盖太多东西了......最近期末考试很多时间没有安排好导致这次作业延迟提交,我一定好好反省!
参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)