欢迎来到天天文库
浏览记录
ID:44049400
大小:481.22 KB
页数:13页
时间:2019-10-18
《数据结构(C语言)课程作业-迷宫问题-设计报告(含代码)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二:迷宫问题设计报告制作人:XXX一、设计思路1.输入地图信息(节点数、路径、入口、出口)2•找出到第一个出口的最短路径3•分别找出到其他出口的最短路径,与己有路径比较,较短则保罗4•输出最近出口路径,和路径长度二、代码说明1.intfindnextnode(intnow,inthavewalk,int*map,intn)〃寻找下一个未走过的节点,返回节点序号2.intcheck(intnextnode,int*way,inttop)way[n+1][2],int〃检验nextnode是否是way中存在的点,是则返回0,不是则返回13.intfindway(intstart,intend
2、,intn,intmap[n+1][n+1],intnode[n+1],intwayshort[n+1])//求解从start到end的最短路径,返回路径长度三、运行结果剧a.txt•记事本o回S文格式(O)M(V)00100000000000000OOIOOOOOOOOOOOOOO110101110000000000010100000000000000010000000000000OOIOOOOOOOOOOOOOO00100001010000000001000101010000000000000100010000000000010001000000000000010101000000000
3、00001010100100000000000010100000000000000010000000000000000000100000000000010010100000000000000010r2b.txt•记事*D回N文件(F)MkE)18式(O)查看(V)«Mb(H)01厶10■MlA*d辆人路径文件名称,betXt;青输入人=]位置的子E:青输入岀ZI的数量,■4「青舖入弟[个出I-位置的序号:切最进岀D的路径为;L2单径长度为:2?rocc33exitedwithreturn・aluc6Pressenykeytocunt丄和uc•••声输入节点个纵J庸输入路径文件名称;b.txt
4、•音辆AA0#inelude/*runthisprogramusingtheconsolepauseroraddyourowngetch,system(HpauseH)orinputloop*/intfindnextnode(intnow,inthavewalk,int*map,intn)〃寻找下一个未走过
5、的节点,返回节点序号inti=O,p=O;while(p6、hort[n+1],int*okfind)〃求解从start到end的最短路径,返回路径长度{intnextnode,top=0,topshort,i;topshort二n+1;way[1][0]=start;top++;if(start==end)//起点就是终点吋{wayshort[1]=way[1][0];return1;}if(way[top][1]==node[way[top][0]])//一个孤立的起点{print"找不到出路H);exit(2);}while(top!=0)//遍历所有路径,寻找最短路径way[top][1]++;nextnode=findnextnode(7、way[top][0],way[top][1],(int*)map,n);if(check(nextnode,(int*)way,top)==1)//如果nextnode未走过,则走到nextnode的位置{top++;way[top][0]二nextnode;}if(way[top][0]==end)//如果找到出口,就把当前路径与已有路径比较,保留较短的路径{if(top
6、hort[n+1],int*okfind)〃求解从start到end的最短路径,返回路径长度{intnextnode,top=0,topshort,i;topshort二n+1;way[1][0]=start;top++;if(start==end)//起点就是终点吋{wayshort[1]=way[1][0];return1;}if(way[top][1]==node[way[top][0]])//一个孤立的起点{print"找不到出路H);exit(2);}while(top!=0)//遍历所有路径,寻找最短路径way[top][1]++;nextnode=findnextnode(
7、way[top][0],way[top][1],(int*)map,n);if(check(nextnode,(int*)way,top)==1)//如果nextnode未走过,则走到nextnode的位置{top++;way[top][0]二nextnode;}if(way[top][0]==end)//如果找到出口,就把当前路径与已有路径比较,保留较短的路径{if(top
此文档下载收益归作者所有