已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验八:校园交通咨询系统设计(最短路径)8.1 问题描述设计一个校内交通咨询系统,能让旅客咨询从任一教学楼到其余所有教学楼之间的最短路径,以及任意两幢教学楼之间的最短路径。校园内简图见图8-1,为通俗化程序,用数字序号代替楼的名称。 图8-18.2 输入与输出输入:输入图的顶点数,以及边数。输出:一幢楼到其他楼之间的最短路径,以及任意两幢楼之间的最短路径。8.3 需求分析1.建立交通网络图的存储结构。2.解决单源最短路径问题。3.最后实现两幢楼之间的最短路径。8.4 概要设计1.结构定义图的存储结构(邻接矩阵)#define MVNum 50 /*最大顶点数*/typedef int VertexType; typedef int Adjmatrix;typedef struct VertexType vexsMVNum; Adjmatrix arcsMVNumMVNum;MGraph;2.函数模块void CreateMGraph( MGraph *G, int n,int e)/*采用邻接矩阵表示法构造有向图G,n,e表示图的当前顶点数和边数*/void Dijkstra(MGraph *G, int v1,int n) /*迪杰斯特拉算法*/void Floyd(MGraph *G, int n) /*费洛伊德算法 */ 8.5 详细设计#include stdio.h#include stdlib.h#define MVNum 50 /*最大顶点数*/#define Maxvalue 32767enum boolean FALSE ,TRUE;typedef int VertexType; typedef int Adjmatrix;typedef struct VertexType vexsMVNum; Adjmatrix arcsMVNumMVNum;MGraph;int D1MVNum, path1MVNum;/D都是表示路径长度,p都是表示路径经过的顶点。源点到所有顶点int DMVNumMVNum, pathMVNumMVNum;/任意两个顶点之间的最短路径void CreateMGraph( MGraph *G, int n,int e);void Dijkstra(MGraph *G, int v1,int n) ;void Floyd(MGraph *G, int n);void main() MGraph *G; int n,e,v,w,k; int choice= 1; G=(MGraph *)malloc(sizeof(MGraph); printf(n请输入图中顶点的个数和边数 n,e:n); scanf(%d,%d,&n,&e);CreateMGraph(G,n,e);/*建立图的存储结构*/printf(*计算校园内教学楼之间的最短路径*n);printf(n*n);printf(1.求一幢教学楼到所有教学楼的最短路径n);printf(2.求任意两幢教学楼之间的最短路径n);printf(0.退出程序n);printf(*n);printf(请输入您的选择:1 or 2 or 0 .n);while(choice!=0) /*可以改为choice,把结构换成switch choice结构*/scanf(%d,&choice);switch(choice)case 2: Floyd(G,n); /*调用费洛尹德函数*/ printf(输入源点和终点:v,w:); scanf(%d,%d,&v,&w); k=pathvw; /*k为起点v的后继顶点*/ if(k=0) printf(顶点%d 到%d无路径!n,v,w); else printf(从顶点%d到%d的最短路径是:%d,v,w,v); while(k!=w ) printf(-%d,k);/*输出后继顶点*/ k=pathkw; printf(-%d,w); printf(路径长度:%dn,Dvw);printf(请输入您的选择:1 or 2 or 0 .n);break;case 1: printf(求单源路径,输入源点v:); scanf(%d,&v); Dijkstra(G,v,n); printf(请输入您的选择:1 or 2 or 0 .n);break;default: printf(结束求最短路径,再见!n);/*输入所有有向边及其权值,建立有向图的存储结构*/void CreateMGraph( MGraph *G, int n,int e)/*采用邻接矩阵表示法构造有向图G,n,e表示图的当前顶点数和边数*/ int i,j ,k,w; for(i=1;ivexsi=i; for(i=1;i=n;i+) for(j=1;jarcsij=Maxvalue; /*初始化邻接矩阵 应该是32767*/printf(输入%d条边的i,j及w:n,e);for(k=1;karcsij=w;printf(图的存储结构建立完毕nn);void Dijkstra(MGraph *G, int v1,int n) /*地杰斯特拉算法c语言描述*/ /*用地杰斯特拉算法求有向图G的v1顶点到其他顶点的最短路径Pv及其权DV设G是有向图的邻接矩阵,若边 不存在,则Gij=Maxintsv为真当且仅当v属于s,即已求得从v1到v的最短路径*/int D2MVNum,path2MVNum;int v,i,w,min;enum boolean sMVNum;for(v=1;varcsv1v;/*置初始的最短路径值*/if(D2vMaxvalue) path2v=v1;/*v1是v的前驱*/else path2v=0;/*v无前驱*/D2v1=0;sv1=TRUE;/*s集初始时只有源点,源点到源点的距离为0开始循环,每次求得v1到某个v顶点的最短路径,并加v到s集中*/for(i=2;i=n;i+)/*其余n-1个顶点*/min=Maxvalue;for(w=1;w=n;w+) if(!sw&D2wmin) v=w;min=D2w;/*w顶点离v1顶点更近*/ sv=TRUE; for(w=1;warcsvwarcsvw; path2w=v;printf(路径长度 路径n);for(i=1;i=n;i+)printf(%6d,D2i); printf(%13d,i); v=path2i;while(v!=0)printf(-%d,v);v=path2v;printf(n);/*非罗伊德算法*/void Floyd(MGraph *G, int n) int i,j,k,v,w; for(i=1;i=n;i+) for(j=1;jarcsij!=Maxvalue) pathij=j;/* j是i的后继*/ else pathij=0; Di
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 对数函数的概念课件2025-2026学年高一上学期数学人教A版必修第一册
- 2026陕西省面向中央财经大学招录选调生笔试考试参考试题及答案解析
- 2025昆明市晋宁区市场监督管理局招聘编外工作人员(1人)考试笔试备考试题及答案解析
- 2026鄂尔多斯市东胜区卫生健康系统事业单位招聘34名控制数工作人员笔试考试备考题库及答案解析
- 2025云南临沧市易成实验学校后勤人员招聘1人笔试考试参考试题及答案解析
- 2025温州市强城城市服务管理有限公司第一批面向社会公开招聘工作人员10人考试笔试备考试题及答案解析
- 2026年陕西省选调生招录(面向北京航空航天大学)考试笔试备考题库及答案解析
- 2025陕西陕煤韩城矿业有限公司社会招聘煤矿技能操作人员招聘500人笔试考试参考试题及答案解析
- 2025内蒙古鄂尔多斯万正投资集团招聘12人考试笔试模拟试题及答案解析
- 2025年抚州市属农业发展集团有限公司人才引培招聘3人笔试考试备考题库及答案解析
- 2025广东佛山市禅城区卫生健康系统招聘事业单位工作人员(第一批)9人笔试考试参考试题及答案解析
- 6.1生物的生殖-2025-2026学年人教版八年级《生物》下册学情评估卷
- 2025北京西城区政务服务中心大厅综合窗口服务岗招聘笔试考试备考题库及答案解析
- 2025上海对外经贸大学武装部干事招聘1人备考题库带答案解析
- 春节前安全教育培训 课件
- 航空发动机燃油系统优化与效率
- 盾构构造与操作维护课件 4 盾构推进系统
- 谷物病原菌风险评估-洞察与解读
- 《数据挖掘原理与应用 第2版 》课件 7.5聚类分析-DBSCAN
- 部编人教版八年级上册道德与法治(课件)3.9.2 奉献社会我践行
- 出租办公楼合同范本
评论
0/150
提交评论