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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

关于迷宫最短路径与所有路径的问题.docx

1、关于迷宫最短路径与所有路径的问题最短路径及其他路径#includeusing namespace std;#define MAXSIZE 200#define m 999#define n 999typedef struct int i,j,di; Queue;Queue StackMAXSIZE,PathMAXSIZE;/栈和存放最短路径长度的数组 int top=-1,count=1,minlen=MAXSIZE;/栈顶指针,路径计数器,最短路径长度 const int move42= -1,0,0,1,1,0,0,-1; int markmn; /标志数组 int mazemn; /迷宫

2、数组 int i1=1,j1=1,i2=10,j2=10,m1=11,n1=11; /入口,出口坐标,迷宫大小void Init_maze(); /初始化系统自带迷宫void NewCreat(); /新建迷宫void Put_in(); /输入进出口void PutOut_all(); /找所有路径和最短路径并输出所有路径void PutOut_Grap(); /输出迷宫图形void Migong(); /使用迷宫void main() cout*欢迎使用迷宫系统*n; while(1) int i; cout请选择你要的操作:n 1.使用系统自带迷宫n 2.使用新建迷宫n 0.退出n; c

3、outi; switch(i) case 1: Init_maze();Migong();break; case 2: NewCreat();Migong();break; case 0: return; default :cout*输入错误,请重新输入!*n;break; /主函数void Init_maze() int i; for(i=0;i=m1;i+) for(int j=0;j=n1;j+) mazeij=1; markij=0; for(i=1;i=6;i+)maze1i=0; maze18=maze21=maze23=0; for(i=6;i=10;i+)maze2i=0; m

4、aze31=maze33=maze36=maze310=0; maze41=maze49=maze410=maze51=0; for(i=3;i=7;i+)maze4i=0; for(i=1;i=3;i+)maze6i=0; for(i=7;i=10;i+)maze6i=0; maze65=maze71=maze75=maze76=0; maze77=maze93=maze98=maze910=0; for(i=1;i=5;i+)maze8i=0; for(i=8;i=10;i+)maze8i=0; maze108=maze64=maze87=maze1010=0;/构建系统迷宫void Mi

5、gong() cout*欢迎使用迷宫*n; while(1) int i; cout请选择你要的操作:n 1.输出所有路径及最短路径n 0.返回上一级菜单n; couti; cout-n; switch(i) case 1: Put_in(); PutOut_all(); break; case 0: return; default :cout*输入错误,请重新输入!*n;break; /系统自带迷宫操作函数void PutOut_Grap() int i; cout迷宫图形:endl; for(i=1;i2*m1;i+) cout_; coutendl; for(i=1;im1;i+) fo

6、r(int j=1;jn1;j+) cout mazeij; coutendl; for(i=1;i2*m1;i+) cout-; coutendl; cout共m1-1行,n1-1列endl;/输出迷宫的图形void Put_in() int p,q; PutOut_Grap(); coutpq; i1=p;j1=q; coutpq; i2=p;j2=q;/输入迷宫的进出口void PutOut_all() int i,j,di,find,k; top+; Stacktop.i=i1; Stacktop.j=j1; Stacktop.di=-1; marki1j1=1; while(top-

7、1) /寻找路径 i=Stacktop.i; j=Stacktop.j; di=Stacktop.di; if(i=i2&j=j2) /找到一条路径则输出 cout*n; cout路径count+:n; cout(Stack0.i,Stack0.j); for(k=1;k=top;k+) cout(Stackk.i,Stackk.j); if(k+1)%5=0)coutendl; coutendl; if(top+1minlen) for(k=0;k=top;k+) Pathk=Stackk; minlen=top+1; markStacktop.iStacktop.j=0; top-; i=

8、Stacktop.i; j=Stacktop.j; di=Stacktop.di; find=0; while(di4&find=0) /确定将要移动的方向及路程 di+; i=Stacktop.i+movedi0; j=Stacktop.j+movedi1; if(markij=0&mazeij=0) find=1; if(find=1) /若有路可走则进栈 Stacktop.di=di; top+; Stacktop.i=i; Stacktop.j=j; Stacktop.di=-1; markij=1; else markStacktop.iStacktop.j=0; top-; cou

9、t*n; cout最短路径如下:n长度:minlenendl; cout路径:n(Path0.i,Path0.j); for(k=1;kminlen;k+) cout(Pathk.i,Pathk.j); if(k+1)%5=0)coutendl; coutendl; count=1; cout*n;/输出所有路径void NewCreat() int h,l,i; cout-n; couthl; m1=h+1;n1=l+1; for(i=0;i=m1;i+) for(int j=0;j=n1;j+) mazeij=1; markij=0; cout请以行为主序输入你的迷宫图形:n; for(i=1;i=h;i+) for(int j=1;jmazeij; coutendl; cout迷宫构建成功!endl;/自定义构建迷宫结果如下:

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

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