已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验课程名称 数据结构课程设计 专 业 班 级 计算机科学与技术10级1班 学 生 姓 名 罗泽丽 学 号 10410901019 指 导 教 师 冯 韵 2012至201学年第 一 学期第 一 至 九 周目 录1概述31.1现状分析31.2存在的问题31.3实现意义32系统分析31.编写要求32.结构设计33概要设计43.1交通咨询系统模块43.2狄克思拉算法图43.3整体流程图54详细设计64.1建立有向图的存储结构64.2 地杰斯特拉算法64.3费洛伊徳算法74.4 主函数75运行与测试95.1有向图的存储结构建立95.2单源路径的迪杰斯特拉算法95.3调用费洛伊德算法96总结和心得107参考文献108附录101概述1.1现状分析在交通网络非常发达,交通工具盒交通方式不断更新的今天,人们在出差,旅游或做其他行动时,往往由于不知道要去目的地的路线,从而给人们的出行带来了很大的不便。不仅浪费时间,还有大量的交通费用。 1.2存在的问题在人们出行时,有急事的那些人就想很快到达目的地,有些人又想使到达目的地的费用越少越好,而老年人就想周转次数最少,但是由于不知道路线,从而导致了一系列的困难,给人们的出行带来很大的不便。1.3实现意义对于这样一个人们关心的问题可用一个人图结构来表示交通网络系统,利用计算机建立一个交通咨询系统这样极大地方便了人们的出行,使得交通不那么的拥挤,从而让出行者更快,更好的到达想要去的地方。2系统分析1.编写要求(1) 提供对城市信息进行编辑的功能.(2) 图形界面尽可能的人性化。(3) 能够对城市建立交通网络图。(4) 提供路径最优决策。2.结构设计1.建立交通网络图的存储结构2.解决单源最短路径3.实现两个城市顶点之间的最短路径。3概要设计3.1交通咨询系统模块交通咨询管理系统管理员用户咨询一个城市到任意城市距离咨询任意两个城市间最短距离增加城 市设置距 离建立交通网3.2狄克思拉算法图开 始初始化距离和路径i=1j=1;j+;jn 修改最短路径和距离输出结果3.3整体流程图开 始输入选择功能用户管理员运 行 否输入退出 是结束4详细设计4.1建立有向图的存储结构 void CreateMGraph(MGraph * G,int n,int e)int i,j,k,w;for(i=1;ivexsi=(char)i;for(i=1;i=n;i+)for(j=1;jarcsij=Maxint;printf(输入%d条边的i,j及w:n,e);for(k=1;karcsij=w;printf(有向图的存储结构建立完毕!n);4.2 地杰斯特拉算法(void Dijkstra(MGraph *G,int v1,int n)int D2MVNum,p2MVNum;int v,i,w,min;enum boolean SMVNum;for(v=1;varcsv1v; if(D2vMaxint) p2v=v1;else p2v=0;D2v1=0; Sv1=TRUE;for(i=2;in;i+)min=Maxint;for(w=1;w=n;w+)if(!Sw & D2wmin)v=w;min=D2w;Sv=TRUE;for(w=1;warcsvwarcsvw;p2w=v;printf(路径长度 路径n);for(i=1;i=n;i+)printf(%5d,D2i);printf(%5d,i);v=p2i;while(v!=0)printf(-%d,v);v=p2v;printf(n);4.3费洛伊徳算法void Floyd(MGraph *G,int n)int i,j,k,v,w;for(i=1;i=n;i+)for(j=1;jarcsij!=Maxint)pij=j;elsepij=0;Dij=G-arcsij;for(k=1;k=n;k+)for(i=1;i=n;i+)for(j=1;j=n;j+)if(Dik+DkjDij) Dij=Dik+Dkj;pij=pik;4.4 主函数 (void main()MGraph *G;int m,n,e,v,w,k;int xz=1;G=(MGraph *)malloc(sizeof(MGraph);printf(输入图中顶点个数和边数n,e:);scanf(%d,%d,&n,&e);CreateMGraph(G,n,e);while(xz!=0)printf(*求城市之间最短路径*n);printf(=n);printf(1.求一个城市到所有城市的最短路径n);printf(2.求任意的两个城市之间的最短路径n);printf(=n);printf(请选择 :1或2,选择0退出:n);scanf(%d,&xz);if (xz=2)Floyd(G,n);printf(输入源点(或起点)和终点:v,w:);scanf(%d,%d,&v,&w);k=pvw;if (k=0)printf(顶点%d 到 %d 无路径!n,v,w);elseprintf(从顶点%d 到 %d 最短路径路径是:%d,v,w,v);while (k!=w)printf(%d,k);k=pkw;printf(%d,w);printf(径路长度:%dn,Dvw);else if(xz=1)printf(求单源路径,输入源点v:);scanf(%d,&v);Dijkstra(G,v,n);printf(结束求最短路径,再见!n); 5运行与测试5.1有向图的存储结构建立5.2单源路径的迪杰斯特拉算法5.3调用费洛伊德算法6总结和心得在这次的试验中,让我更深的了解数据结构,在做实验的时候,自己亲自动手,一点一点慢慢做,突然发现好困难,也由于平时的基本功不够,所以导致了问题的难度性加大了。在这次的试验中,难易程度对我而言较大,程序代码不算长,但由于输入时不细心,导致许多的小错误,但还存在着不少的问题,在同学的帮助下,慢慢解决了这个问题,但许多概念还是模棱两可的,可是这次绝对是我的一个进步。我以后一定认真学习,好好把握问题的关键,掌握知识的要领。7参考文献1 .严蔚敏、吴伟民主编 数据结构(C语言版) 清华大学出版社2 苏仕华主编 数据结构课程设计 机械工业出版社3 严蔚敏、吴伟民 数据结构习题集(C语言版)清华大学出版社8附录#include#include#define MVNum 100#define Maxint 32767enum booleanFALSE,TRUE;typedef char VertexType;typedef int Adjmatrix;typedef structVertexType vexsMVNum;Adjmatrix arcsMVNumMVNum;MGraph;int D1MVNum,p1MVNum;int DMVNumMVNum,pMVNumMVNum;void CreateMGraph(MGraph * G,int n,int e)int i,j,k,w;for(i=1;ivexsi=(char)i;for(i=1;i=n;i+)for(j=1;jarcsij=Maxint;printf(输入%d条边的i,j及w:n,e);for(k=1;karcsij=w;printf(有向图的存储结构建立完毕!n);void Dijkstra(MGraph *G,int v1,int n)int D2MVNum,p2MVNum;int v,i,w,min;enum boolean SMVNum;for(v=1;varcsv1v; if(D2vMaxint) p2v=v1;else p2v=0;D2v1=0; Sv1=TRUE;for(i=2;in;i+)min=Maxint;for(w=1;w=n;w+)if(!Sw & D2wmin)v=w;min=D2w;Sv=TRUE;for(w=1;warcsvwarcsvw;p2w=v;printf(路径长度 路径n);for(i=1;i=n;i+)printf(%5d,D2i);printf(%5d,i);v=p2i;while(v!=0)printf(-%d,v);v=p2v;printf(n);void Floyd(MGraph *G,int n)int i,j,k,v,w;for(i=1;i=n;i+)for(j=1;jarcsij!=Maxint)pij=j;elsepij=0;Dij=G-arcsij;for(k=1;k=n;k+)for(i=1;i=n;i+)for(j=1;j=n;j+)if(Dik+DkjDij) Dij=Dik+Dkj;pij=pik;void main()MGraph *G;int m,n,e,v,w,k;int xz=1;G=(MGraph *)malloc(sizeof(MGraph);printf(输入图中顶点个数和边数n,e:);scanf(%d,%d,&n,&e);CreateMGraph(G,n,e);while(xz!=0)printf(*求城市之间最短路径*n);printf(=n);printf(1.求一个城市到所有城市的最短路径n);printf(2.求任意的两个城市之间的最短路径n);printf(=n);printf(请选择 :1或2,选择0退出:n);scanf(%d,&xz);if (xz=2)Floyd(G,n);printf(输入源点(或起点)和终点:v,w:);scanf(%d,%d,&v,&w);k=pvw;if (k=0)printf(顶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB-T 36383-2018氯乙烯精馏过程中高沸物处理处置方法专题研究报告
- 后勤人员人文素养评估与提升方案
- 合并糖尿病的冠心病患者血运重建个体化血运重建策略
- 合并慢性代谢综合征抗凝治疗的个体化体重管理方案
- 叙事医学在医学人文教育中的叙事案例库建设的可持续发展策略
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人模拟试卷附答案
- 受试者风险认知水平的提升策略
- 双胎输血综合征的胎儿镜激光治疗策略
- 双抗个体化治疗中的患者分层策略
- 中医治疗高血压的降压之道
- 贵州国企招聘:2025贵州凉都能源有限责任公司招聘10人备考题库完整答案详解
- 2025国家外汇管理局中央外汇业务中心校园招聘笔试历年参考题库附带答案详解
- 冬季消防车行车安全培训课件
- (3.1.1)-1.牙体形态的生理意义
- 分解区域培训教材课件
- 电力电缆变频谐振试验技术课件
- 航道与航道工程课件
- 国开电大《当代中国政治制度》形考任务三答案
- 激光雷达技术原理-第一章课件
- 污水管网巡查维护工作实施方案
- 《铁路技术管理规程 (普速铁路部分)》条文说明上册
评论
0/150
提交评论