-一、需求分析1、问题描述创建一个至少有 15 个点的无向网表示的某个旅游景点的导游图
顶点代表景点,类型为字符串(例如,泰山导游图:“天地广场门”,“十八盘”,“冯玉祥墓”,“桃花峪门”,“中天门”,“南天门”,“玉皇顶”等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)
建立一个游客咨询系统
2、基本要求a
创建图的存储结构
输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路程公里数、行走的方法(每一段是步行,还是坐索道)
输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;假如两者无路径可通,就得出“两景点不可达的信息”
二、概要设计1
数据结构本程序需要用到两个结构体,分别为 ArcCell 和 MGraph
程序模块本程序包含两个模块,一个是实现功能的函数的模块,另一个是主函数模块
系统子程序及功能设计本系统共有七个子程序,分别是:int LocateVex(MGraph G,VertexType u)//得到顶点 u 的序号void CreateDN(MGraph *G)//建立景点间的无向网VertexType* GetVex(MGraph G,int v)//根据顶点序号返回顶点值int FirstAdjVex(MGraph G,VertexType v)// 返回 v 的第一个邻接顶点的序号int NextAdjVex(MGraph G,VertexType v,VertexType w)// 返回 v 的(相对于 w 的)下一个邻接顶点的序号void Simpleway(MGraph& m,char *str,char *buf)//求任意两个景点之间的所有简单路径int Minway(MGraph& m,char *str,ch