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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(数据结构迷宫问题求解文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构迷宫问题求解文档格式.docx

1、2.输入输出的要求:(i) 求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一个坐标的方向。(ii)输出迷宫示意图 3.程序所能达到的功能:(i) 实现一个以链表作存储结构的栈类型,以非递归算法求出通路(ii)以一个递归算法,对任意输入的迷宫矩阵求出所有通路。2 概要设计1.构建一个二维数组mazeMN用于存储迷宫矩阵手动生成迷宫,即为二维数组mazeMN赋值构建一个栈用于存储迷宫路径 建立迷宫节点用于存储迷宫中每个节点的访问情况;非递归本程序包含6个函数:(1)主函数 main() (2)生成迷宫 create_maze() (4)打印迷宫 pr

2、int_maze() (5)搜索迷宫路径并用三元组输出路径 mgpath()(6)用图来输出路径print_tu();递归本程序包含3个函数: (1)主函数main(); (2)打印迷宫printmaze(); (3)搜索迷宫路径pass(int x,int y);3. 详细设计1.非递归起点和终点的结构类型 typedef struct int h; int l;T;栈节点类型 typedef struct cell int row; int col;int dir;TCell;1.生成迷宫void creat_maze(int a,int b)定义i,j为循环变量 for(ia) for(

3、j=0) /判栈是否空 i,j为当前访问点的位置if(i,j是终点坐标)用循环输出栈里的元素;else 将(i,j),即访问点入栈,然后向四周寻找是否有通路,若有通路,将原访问点标记(赋值-1),选一条通路作为新访问点,入栈。若没有通路,回溯,将栈顶元素出栈作为访问点,继续寻找通路。4.生成路线图Print_tu()i,j为循环变量for(ia)b)if(mazeij=1);print(“#”) / # 表示墙else if(mazeij=0)print(“”)else print(“+”) / + 表示路径2.递归void printmaze()void pass(int x,int y)

4、将访问点标记 mazexy=-1;if(x,y是终点坐标)调用printmaze()输出栈里的元素; if(x,y的左边是通路)递归调用pass(x,y-1);if(x,y的右边是通路)递归调用pass(x,y+1);if(x,y的上边是通路)递归调用pass(x-1,y);if(x,y的下边是通路)递归调用pass(x+1,y);4. 测试与分析【小结或讨论】这次的项目,加强了我动手、思考和解决问题的能力。巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力培养了我查阅参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。通过实际编译系统的分析设计、编

5、程调试,掌握应用软件的分析方法和工程设计方法。附页源程序#includestdlib.h#define N1 10#define N2 10int mazeN1N2; /迷宫数组typedef struct /起点终点坐标typedef struct cell int dir; /栈的元素结构 /栈void creat_maze(int a,int b) /建立迷宫 int i,j; for(i=0;ia;i+) for(j=0;jb;j+) scanf(%d,&mazeij);void print_maze(int a,int b) /打印迷宫 for(j=0; printf( %d,maz

6、eij);n); void print_tu(int a,int b) /打印迷宫路径图 if(mazeij=1) printf(# else if(mazeij=0) else+ void mazepath(int mazeN1N2,T s,T e) /搜索路径 int top=0; int i,j,k,find,di; Stop.row=s.h; mazes.hs.l=-1;=0) i=Stop.row; j=Stop.col; di=Stop.dir; if(i=e.h&j=e.l)输出迷宫路径三元组: for(k=0;k=top;k+) %d %d %dn,Sk.row,Sk.col,

7、Sk.dir); return; find=0; while(find=0&di4) di+; switch(di) case 0:i=Stop.row-1;j=Stop.col; break; case 1:i=Stop.row;j=Stop.col+1; case 2:i=Stop.row+1; case 3:j=Stop.col-1; if(mazeij=0) find=1; if(find=1) Stop.dir=di; top+; Stop.row=i;Stop.col=j; mazeij=-1; else mazeStop.rowStop.col=0; top-; printf(没

8、有路径nint main() /主函数 int a,b; T s,e;输入迷宫的行数与列数:%d,%da,&b);输入迷宫数据: creat_maze(a,b);输出迷宫: print_maze(a,b);输入起点与终点:s.h,&s.l);e.h,&e.l); mazepath(maze,s,e);输出迷宫图和路线: print_tu(a,b);int maze99=1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1;9; else if(mazeij=-1) else printf( mazexy=-1; if(x=7&y=7)输出路径n printmaze(); if(mazexy+1=0) pass(x,y+1); if(mazex+1y=0) pass(x+1,y); if(mazex-1y=0) pass(x-1,y); if(mazexy-1=0) pass(x,y-1); mazexy=0;int main() int inx=1,iny=1;迷宫图是: pass(inx,iny);

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

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