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

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

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

1.实验内容

(1) 初始化:根据屏幕提示(例如:输入1为无向图,输入2为有向图)初始化无向图和有向图(可用邻接矩阵,也可用邻接表),图需要自己定义(顶点个数、边个数,建议先在草稿纸上画出图,然后再输入顶点和边数)(2分)

(2) 图的遍历:完成有向图和无向图的遍历(深度和广度优先遍历)(4分)

(3) 完成有向图的拓扑排序,并输出拓扑排序序列或者输出该图存在环(3分)

(4) 完成无向图的最小生成树(Prim算法或Kruscal算法均可),并输出(3分)

(5) 完成有向图的单源最短路径求解(迪杰斯特拉算法)(3分)

2. 实验过程及结果

-过程没有什么好说的,直接来结果8:

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

  • 问题1:在解决最小路径问题时,程序计算结果为0
  • 问题1解决方案:初始化矩阵时,不能直接赋权值为0,不然程序在计算时自然会将0作为最小权值相加;在初始化矩阵时,将不相连的边的权值赋值为一个极大值。
  • 问题2:实现深度优先遍历算法时,输出的序列与实际的序列是相反的
  • 问题2解决方案:由于深度优先遍历主要是通过栈来实现的,所以根据栈“先进后出”的特点,出栈的顺序与真正的遍历顺序是相反的;使用一个数组,在每一次结点入栈时记录这个结点,最后做一次倒序输出即可。

其他(感悟、思考等)

图的东西好难,十分抽象;要学习图的相关内容不得不去联想之前关于树的内容。根据测验内容的启发,其实树也是一种图。图的本质是把各种数据元素用路径连接在一起。因为这种东西大部分都是停留在纸面概念上,所以我们的实践就是通过代码来实现这种图。

参考资料

posted on 2019-12-08 20:17  20182308hlh  阅读(190)  评论(0编辑  收藏  举报

导航