欢迎来到天天文库
浏览记录
ID:48975621
大小:74.50 KB
页数:8页
时间:2020-02-26
《某数据结构课程设计公园导游图.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验四:图(内容:某公园导游图)一、问题描述:公园导游系统:给出一张某公园的导游图,游客通过终端询问可知︰从某一景到另一景点的最短路径。游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。二、设计描述:1.输入导游图的算法(存储方法).本程序特地设计函数voidinitgraph()用于实现键盘输入图的结构;2.可访问导游图中任一景点的算法.为此设计了函数voidvist(GraphMatrixgraph)用于实现访问任一景点的信息;3.最短路径从一景点到另一景点的算法。利用floyd算法-实现每一对景点间的最短路径。并利用voidoutg
2、raph()函数实现显示起始点和终点间的最短路径和其长度;三、程序清单:#includeusingnamespacestd;#include#defineMAXVEX100#defineMAX999typedefcharVexType;word范文.typedeffloatAdjType;typedefstruct//定义图结构{intn;/*图的顶点个数*/VexTypevexs[MAXVEX];/*顶点信息*/AdjTypearcs[MAXVEX][MAXVEX];/*边信息*/}GraphMatrix;GraphMatrixgraph;//定义一
3、个图graphtypedefstruct//定义最短路径ShortPath结构{AdjTypea[MAXVEX][MAXVEX];/*关系矩阵A,存放每对顶点间最短路径长度*/intnextvex[MAXVEX][MAXVEX];/*nextvex[i][j]存放vi到vj最短路径上vi的后继顶点的下标值*/}ShortPath;ShortPathpath;//定义路径pathvoidfloyd(GraphMatrix*pgraph,ShortPath*ppath)//floyd算法-用于实现每一对景点间的最短路径{inti,j,k;for(i=0;in;i++)for(
4、j=0;jn;j++){if(pgraph->arcs[i][j]!=MAX)ppath->nextvex[i][j]=j;word范文.elseppath->nextvex[i][j]=-1;ppath->a[i][j]=pgraph->arcs[i][j];}for(k=0;kn;k++)for(i=0;in;i++)for(j=0;jn;j++){if(ppath->a[i][k]>=MAX
5、
6、ppath->a[k][j]>=MAX)continue;if(ppath->a[i][j]>ppath->a[i][k
7、]+ppath->a[k][j]){ppath->a[i][j]=ppath->a[i][k]+ppath->a[k][j];ppath->nextvex[i][j]=ppath->nextvex[i][k];}}}voidoutgraph()//out()函数用于实现显示起始点和终点间的最短路径和其长度{intc,b,i;cout<>c;cin>>b;i=path.a[c][b];//通过path.a[c][b]把路径长度赋给iword范文.cou
8、t<<"该路径总长为:";cout<
9、ph.n=m;for(i=0;i>graph.vexs[i];}printf("请输入公园的邻接矩阵的信息");//循环输入图的邻接矩阵信息(也就是输入一个二维数组)for(i=0;i
此文档下载收益归作者所有