ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:84.32KB ,
资源ID:13169075      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13169075.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计旅游景点咨询系统的设计与实现Word文档下载推荐.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计旅游景点咨询系统的设计与实现Word文档下载推荐.docx

1、void Simpleway(MGraph& m,char *str,char *buf)/求任意两个景点之间的所有简单路径int Minway(MGraph& m,char *str,char *buf)/求两顶点间的最短路径3. 各模块之间的调用关系以及算法设计函数CreateDN调用函数LocateVex函数Simpleway调用函数LocateVex函数Minway调用函数LocateVex, GetVex,FirstAdjVex,NextAdjVex主函数调用函数CreateDN,Simpleway,Minway。三、详细设计1.数据类型定义typedef struct VRType

2、 adj; int info; ArcCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM; VertexType vexsMAX_VERTEX_NUM; AdjMatrix arcs; int vexnum,arcnum;MGraph;2.系统主要子程序详细设计a.void CreateDN(MGraph *G) /* 采用数组(邻接矩阵)表示法,构造有向网G */ int i,j,k,w,c; char sMAX_INFO,*info; VertexType va,vb; printf(请输入景点个数以及景点间所有路径的个数(以空格隔开); scanf(%d

3、 %d,&(*G).vexnum,&(*G).arcnum);请输入%d个景点:n,(*G).vexnum); for(i=0;i(*G).vexnum;+i) /* 构造顶点向量 */ scanf(%s,(*G).vexsi);+i) /* 初始化邻接矩阵 */ for(j=0;j+j) (*G).arcsij.adj=INFINITY; /* 网 */ (*G).arcsij.info=NULL; 请输入%d条景点间的路径,路径间的路程权值以及路径间到达方式(以0或1来表示到达方式,步行:0,索道:1,如:光明顶 迎客松 30 1): n,(*G).arcnum); for(k=0;k(*

4、G).arcnum;+k) %s%s%d%d*c,va,vb,&w,&c);/* %*c吃掉回车符 */ i=LocateVex(*G,va); j=LocateVex(*G,vb); (*G).arcsij.adj=(*G).arcsji.adj=w; /* 有向网 */ (*G).arcsij.info=(*G).arcsji.info=c; /* 有向 */ b. m,char *str,char *buf)/*求任意两个景点之间的所有简单路径*/for(int i=0;m.vexnum;i+)visitedi=false;int x=LocateVex(m,str);int y=Loc

5、ateVex(m,buf);/*从x出发到y*/stacks;s.push(x);visitedx=true;int i=0;int z=0;/表示没有找到这两个点之间有路径while(!s.empty()int flag=0;/取栈顶元素 int t=s.top();for(;if(m.arcsti.adj != INFINITY & visitedi=false)s.push(i);flag=1; visitedi=true;/*找到简单路径*/ if(s.top()=y)/到达终点 z=1;/找到这样的路径 cout一条简单路径为:endl;stacks2;/建立一个临时的栈/创建一个数

6、组存放路径下标int *way=new ints.size();int count=0;while(!s2.push(s.top();s.pop();/还原s同时输出路径s2.empty()coutm.vexss2.top() ;waycount+=s2.top();s.push(s2.top();s2.pop();/计算路径长度,给出到达的方式int num=0; 到达方式:for(int k=0;s.size()-1;k+)int x1=LocateVex(m,m.vexswayk);int y1=LocateVex(m,m.vexswayk+1);num+=m.arcsx1y1.adj;

7、if(m.arcsx1y1.info=0)cout步行 else索道路程:numcout /出栈 int p=s.top(); visitedp=false; s.pop(); /从p开始接着访问后面的邻接点 i=p+1;break; /跳出本次循环i=0;break;if(flag=0)/出栈int p=s.top();visitedp=false;s.pop();/从p开始接着访问后面的邻接点i=p+1;if(z=0)cout两景点不可达c./分配路径相关信息的存储空间int *road=new int*m.vexnum;roadi=new intm.vexnum;/初始化for(int

8、j=0;j+)if(j=0)roadij=x;elseroadij=-1; /while(find_sx=true) find_si=false; lengthi=m.arcsxi.adj; if(m.arcsxi.adj!=INFINITY) roadi1=i; find_sx=true;lengthx=0;rigth_lengthx=0;for(int j=1;int pose=find_min_length(m,length);int z=0;/记录找到它的路径while(roadposez!=-1&z=m.vexnum)z+;/coutmin_length=lengthposerigth_lengthpose=lengthpose; /将路径最短的关联的另一个顶点加入已找到路径的数组中 fi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1