20202330 金晨 实验九 《图》实验报告

课程:《程序设计与数据结构》
班级: 2023
姓名: 金晨
学号:20202330
实验教师:王志强
实验日期:2020年12月15日
必修/选修: 必修

1.实验内容

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

PS:本题12分。目前没有明确指明图的顶点和连通边,如果雷同或抄袭,本次实验0分。

2.实验过程及结果

1.图的初始化

码云链接(1)(2)(3)

邻接表输出

 运行结果:

(1)有向图

 (2)无向图:

 

2. 图的遍历

 代码链接

 3.拓扑排序

4.无向图的最小生成树(Prim):

 求图最小生成树的PRIM算法
* 基本思想:假设N=(V,{E})是联通网,TEN上的最想生成树中的变得集合。算法从U={u0}(u0属于V)
* TE={}开始,重复执行下述操作:在所有的u属于Uv属于V-U的边(uv)属于E中找到一条代价最小
* 的边(u0v0)并入集合TE,同事v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,{TE})
* N的最小生成树。

码云链接

 

 

 5.单源最短路径求解(迪杰斯特拉算法)

代码链接

3.其他(感悟、思考等)

  在学习过程中,我很努力地使自己保持心理的平静,从基础学起,甚至是一些看上去完全没有必要的基础。 我要扎扎实实,一步一个脚印的逐步学习。

  做实验的时候心态炸裂,不过已经是最后一次实验了,耐着性子忍着爆红,一点点改完了代码。结束我持续一天的奋斗

posted @ 2021-12-10 19:35  航行肥鸡  阅读(40)  评论(0编辑  收藏  举报