数据结构课程设计报告--Dijkstra算法求最短路径
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
《数据结构》课程设计
题目第9题Dijkstra算法求最短路径学生姓名XXXX
指导教师XXXX
学院信息科学与工程学院
专业班级XXXXXXX
完成时间XXXXXXX
目录
第一章问题分析与任务定义---------------------------------------------------------------------3课程设计题目-----------------------------------------------------------------------------3
原始数据的输入格式--------------------------------------------------------------------3
实现功能-----------------------------------------------------------------------------------3
测试用例-----------------------------------------------------------------------------------3
问题分析-----------------------------------------------------------------------------------3
第二章数据结构的选择和概要设计------------------------------------------------------------4数据结构的选择--------------------------------------------------------------------------4
概要设计-----------------------------------------------------------------------------------4
第三章详细设计与编码-----------------------------------------------------------------------------6框架的建立---------------------------------------------------------------------------------6
点结构体的定义---------------------------------------------------------------------------7
创立带权值有向图------------------------------------------------------------------------8
邻接矩阵的显示---------------------------------------------------------------------------9
递归函数的应用---------------------------------------------------------------------------10
Dijkstra算法实现最短路径--------------------------------------------------------------10第四章上机调试------------------------------------------------------------------------------------11记录调试过程中错误和问题的处理---------------------------------------------------11算法的时间课空间性能分析------------------------------------------------------------11
算法的设计、调试经验和体会---------------------------------------------------------11第五章测试结果-----------------------------------------------------------------------------------12第六章学习心得体会-----------------------------------------------------------------------------12第七章参考文献-----------------------------------------------------------------------------------12附录------------------------------------------------------------------------------------------------------12
第一章问题分析与任务定义
1、课程设计题目:
题目:采用适当的存储结构实现带权有向图的存储,建立,输入、显示,以及使用Dijkstra算法,寻找和输出带权有向图中某个源点到其余各点的最短路径
要求:采用适当的存储结构实现带权有向图的存储,建立,输入、显示,以及使用Dijkstra算法。
具体任务:建立图的存储模块,建立图的输出模块,在建图后从单源点开始求最短路径,并显示出来。
2.原始数据的输入格式
建图:数字
显示:数字+逗号+数字+回车
字母+回车
3.实现功能
建立有向图
显示存储的有向图
显示从顶点到其他各个顶点的最短路径和是否存在路径
4.测试用例
正确数据:输入顶点;边值信息
输出结果:最短路径是否存在,存在的情况最短路径是多少,其次是不存在。
5.问题分析
实现本程序要解决以下几个问题:
如何存储一个有向图。
如何在界面中输出该有向图。
如何定义起始源点。
如何选择出最短路径。
找到的最短路径如何输出。
第二章数据结构的选择和概要设计
1.数据结构的选择:
在图的结构中,任意两个顶点之间都可能存在关系,比线性表和树要复杂。由于不存在严格的前后顺序,因而不能采用简单的数组来存储图;另一方面,如果采用链表,由于图中各顶点的度数不尽相同,最小度数和最大度数可能相差很大,如果按最大度数的顶点来设计链表的指针域,则会浪费很多存储单元,反之,如果按照各个顶点设计不同的链表结点,则会给操作带来