- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验课程名称 数据结构课程设计
专 业 班 级
学 生 姓 名
学 号
指 导 教 师
2012 至 2013 学年第 一 学期第 1 至 9 周
目录
一、概述: 3
1.1 问题描述 3
1.2 系统实现的目标 3
1.3 系统实现方案 3
二、系统分析: 4
2.1 设计思想 4
2.2 设计要求 4
2.3 需求分析 4
2.4 算法描述 5
三、概要设计: 7
3.1 程序流程图 8
四、详细设计: 9
4.1 建立图的存储结构 9
4.2 单源最短路径 9
4.3 任意一对顶点间最短路径 10
4.4 建立有向图的存储结构 11
4.5 迪杰斯特拉算法 11
4.6 弗洛伊德算法 12
4.7 运行主控程序 13
五、运行与测试: 14
六、:总结与心得 16
附录:程序代码 16
一、概述:
1.1 问题描述
在交通网络非常发达 , 交通工具和交通方式不断更新的今天 , 人们在出差、旅游或做其他出行时, 不仅关心节省交通费用, 而且对里程和所需要的时间等问题也感兴趣。对于这样一个人们关心的问题, 可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。 图中的顶点表示城市, 边表示城市之间的交通关系。这个交通系统可以回答出行旅客提出的各种路径选择问题。 例如,问题之一:“一位旅客要从 A 城到 B 城,他希望选择一条途中中转次数最少的路线。 ”
假设图中每一站都需要换车,那么这个问题反映到图上就是要找一条从顶点 A 到顶点 B 的所含边数目最少的路径。 我们只需要从顶点 A 出发对图作广度优先搜索,一旦遇到顶点 B 就终止。由此所得广度优先生成树上,从根顶点 A 到顶点 B 的路径就是中转次数最少的路径。路径上 A 与 B 之间的顶点就是路径的中转站,但这只是一类最简单的图的最短路径问题。 系统还可以回答诸如此类的等等的路径选择问题。
1.2 系统实现的目标
通过进行课程设计, 了解并初步掌握设计、 实现较大系统的完整过程, 包括:
系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设
计、实现以及操作方法,为进一步的应用开发打好基础。
应用所学数据结构知识, 独立完成问题分析, 结合数据结构理论知识, 编写程序求解指定问题。
1.3 系统实现方案
首先确定系统要实现怎样的目的, 实现这些目的需要先实现哪些程序, 这就是核心部分, 划分出模块并写出其源代码, 此程序大致分了六大模块, 由一个主函数组和五个自定义函数组成, 而后是上机调试, 将几大模块组成一个协调完整的能实现其功能的程序,最后提交设计报告
二、系统分析:
2.1 设计思想
用邻接矩阵来存储交通网络图的信息, 运用迪杰斯特拉算法实现图上单源最短路径问题,然后运用费洛伊德算法实现图中任意一对顶点间最短路径问题, 这样就会实现旅客所要咨询的问题。
2.2 设计要求
该交通咨询系统要完成城市网络图的存储, 并要实现求任意一个城市顶点到
其他城市顶点的最短路径问题, 还要实现任意两个城市顶点间的 最短路径问题。故设计要分成三部分, 一是建立交通网络图的存储结构; 二是解决单源路径问题;最后再实现两个城市之间的最短路径问题。
设计要求:
建立交通网络网的存储结构。
总体设计要画流程图。
提供程序测试方案。
界面友好。
2.3 需求分析
根据要求,需要在系统中建立无向图。 系统应该有高度灵活性, 可以由用户根据当前交通网络图输入初始数据, 并且可以更改。 系统根据用户的输入建立无向图的结构, 并通过狄克斯特拉算法和弗洛伊德算法实现要求, 并提供两种功
能供用户选择 。
2.4 算法描述
构
建
录入城市及道路数据
交 交通查询系统
通
预置城市间的距离 网
狄克斯特拉算法的具体流程图
开 始
初始化距离和路
径
i=1
i++ j=1;j++;jn
修改最短路径和距离
根
据
无 查询一个城市到其它
向 城市的最短路径
图
建
立
查 查询任意两城市间的
询 最短路径
功
能
in
输出结果
弗洛伊德算法的具体流程图
开 始
初始化距离和路径
设 为从 到 的只以
集合中的节点为中间节点的最短
路径的长度
最短路径不经过点 k
最短路径经过点 k
输出结果
三、概要设计:
程序中将涉及下列两个抽象数据 型:一个是 ,一个是 列。
1、 定“ ”的抽象数据 型定 :
ADT Graph{
数据 象
V :V
是具有相同特性的数据元素的集合
, 称 点集。
数据关系
R:
R={VR}
VR = { v, w | v, w
谓词 P(v, w) 定义了弧
基本操作 P:
∈ VP(v, w), v, w 表示从
v, w 的意义或信息 }
v 到
w 的弧,
CreateGraph(G ,V,
原创力文档


文档评论(0)