下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告——迷宫求解问题实验上机环境:DevC++二、程序设计相关信息(1)实验题目:迷宫求解问题问题描述:实验题3.5改善节中的求解迷宫问题程序,规定输出如图3.14所示的迷宫的所有途径,并求最短途径长度及最短途径。01?.445(2)实验项目组成:本项目由一个原程序mg.cpp及mg.cxc文献组成。(3)实验项目的程序结构:函数调用关系图:mainOQtrurt舛松依monnth/X余杼两加
(4)实验项目包含的函数的功能描述:mg[M+l][N+l]//构造迷宫二维数组,1表达墙不可走方块,0表达通道mg[M+l][N+l]mgpath(intxi,intyi,intxe,intye)〃求解途径为:(xi,yi)—>(xe,ye)//采用顺序栈存储,进栈,回溯,退栈等(5)算法描述:求解迷宫从入口到出口的所有途径,从入口出发,顺某一个方向向前试探,对于可走的方块都进栈,并将这个可走发方位保存,且t。p+1,然后试探下一个方块,若下一个方块能走通则继续,否则则回溯到前一个方块,且top-U为记录所有的途径调用Path[k]=Stack[k]记录,从次方块向不同方向去试探,已经走过的方块则为不可走方块。最后比较I。P值找到一条最短途径并输出。试探途径过程的算法运用了“广度优先搜索遍历”算法。流程图:for循环mg=0(6)实验数据:迷宫数组如下:intmg[M+l][N+l]={{1,1,1,1,1,1}J1,0,0,0,13},{1,0,1,0,0,1},实验结果:{1,0,0,0,1,1),{1,1,0,0,0,1),(1,1,1,1,1,1)};路径如下:实验结果:1:<1,1><1,2><1,3><2,3><3,3><4,3〉<4,4〉2:<1,1><1,2><1,3><2,3><3,3><3,2X4,2X4,3X4,4>3:<1,1><2,1><3,1><3,2><3,3><4,3><4,4>4:<1,1X2,1X3,1X3,2X4,2><4,3><4,4>最短路径如下:路隹最妞长度:7最短路径路备<12><1,3><2,3><3,3><4,3><4,4>情按任意键继续..<1三、程序代码:#inc1ude<stdio.h>#includc#includc#includc<stdlib.h>#defineM6#define#defineMaxsize100intmg[M+l][N+l]={#includc<stdlib.h>#defineM6U/,l,1,1,1},{1,0.0,0,1,1),{1,0,1,001},{1,0,0,0,1,1),{1,1,0,0,0,11,{1,1,1,1,1,1});struct(inti;intj;intdi;}Stack[Maxsize],Path[Maxsize];inttop=-l;intcount=1;intmin=Maxsize;intmgpath()(inti,j,di,find,k;top++;Stack[top].i=l;Stack[top].j=1;Stack[top].di=-l;mg[1][1]=-1;Prinif("迷宫所有途径如下:'n");whi1e(top>—1)i=Stack|top].i;j=Stack[top],j;di=Stack[top].di;if(i==M-2&&j==N-2)prinlf("%4d:",counl++);for(k=0;k<=top;k++){printf("(%d.%d)",Stack[k].i,Stack[k].j);if((k+l)%5==0)printf("\n");)printfC'\n");if(top+1<min)(for(k=0;k<=top;k++)Path[k]=Stack[k];min=top+1;1mg[Stackftop].i][Stack[top].j]=0;topi=Stack[top].iy=Stack[top].j;di=Stack[top],di;}find=0;while(di<4&&find==0)(di++;switch(di)caseO:i=Stack[top].i-1;j=S(ackftop].j;break;case1:i=Stack[top].i;j=Stack[top].j+l:break;case2:i=Stack[top].i+1;j=Stack[lop],j;break;case3:i=Stack[top].i;j=Stack[top].j-1:break;)if(mg川[j]==0)find=1;}if(find==1)(Stack[top].di=di;top++;Suck[top].i=i;Stackftop].j=j;Stack[top].di=—1;mg[i])else(mg[Stack[topJ.iJ[Stack[(op].j]=0;top)}Printf("\n");printf("最短途径如下:\n");printf("途径最短长度:%d\n",min):printf("最短途径途径:\n");for(k=0;k<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025饭店转包合同范文
- 2025年度养老机构宠物养护服务合同示范文本3篇
- 二零二五年度竞业禁止劳动合同在文化产业的关键作用3篇
- 二零二五年度公租房合同签订及补贴发放协议3篇
- 二零二五年度学校食堂兼职校医食品安全合同2篇
- 二零二五年度素食餐饮技术加盟经营合同2篇
- 二零二五年度土方运输车辆智能化改造与升级合同3篇
- 二零二五年度新能源电动汽车租赁合同2篇
- 2025年度年度租赁车辆保险责任协议3篇
- 2025年度极限运动赛事委托承办授权协议3篇
- 2022年体育老师个人年终工作总结
- GB 18613-2020 电动机能效限定值及能效等级
- 指导小学生课外阅读案例
- 全国妇联统计软件
- 【高中化学校本课程】《生活中的化学》校本教材
- 水资源管理培训材料课件
- SCA自动涂胶系统培训讲义
- 促销活动方案(共29页).ppt
- 农民专业合作社财务报表(三张表)
- 培训准备工作清单
- 沉井工程检验批全套【精选文档】
评论
0/150
提交评论