欢迎来到天天文库
浏览记录
ID:10420537
大小:40.00 KB
页数:11页
时间:2018-07-06
《迷宫 最短路径及所有路径的问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#includeusingnamespacestd;#defineMAXSIZE200#definem999#definen999typedefstruct{inti,j,di;}Queue;QueueStack[MAXSIZE],Path[MAXSIZE];//栈和存放最短路径长度的数组inttop=-1,count=1,minlen=MAXSIZE;//栈顶指针,路径计数器,最短路径长度constintmove[4][2]={{-1,0},{0,1},{1,0},{0,-1}};intma
2、rk[m][n];//标志数组intmaze[m][n];//迷宫数组inti1=1,j1=1,i2=10,j2=10,m1=11,n1=11;//入口,出口坐标,迷宫大小voidInit_maze();//初始化系统自带迷宫voidNewCreat();//新建迷宫voidPut_in();//输入进出口voidPutOut_all();//找所有路径和最短路径并输出所有路径voidPutOut_Grap();//输出迷宫图形voidMigong();//使用迷宫voidmain(){cout<<"******
3、*************欢迎使用迷宫系统*******************";while(1){inti;cout<<"请选择你要的操作:"<<"1.使用系统自带迷宫"<<"2.使用新建迷宫"<<"0.退出";cout<<"请输入:";cin>>i;switch(i){case1:Init_maze();Migong();break;case2:NewCreat();Migong();break;case0:return;default:cout<<"*****输入错误,请重新输入!**
4、***";break;}}}//主函数voidInit_maze(){inti;for(i=0;i<=m1;i++)for(intj=0;j<=n1;j++){maze[i][j]=1;mark[i][j]=0;}for(i=1;i<=6;i++)maze[1][i]=0;maze[1][8]=maze[2][1]=maze[2][3]=0;for(i=6;i<=10;i++)maze[2][i]=0;maze[3][1]=maze[3][3]=maze[3][6]=maze[3][10]=0;maze[4]
5、[1]=maze[4][9]=maze[4][10]=maze[5][1]=0;for(i=3;i<=7;i++)maze[4][i]=0;for(i=1;i<=3;i++)maze[6][i]=0;for(i=7;i<=10;i++)maze[6][i]=0;maze[6][5]=maze[7][1]=maze[7][5]=maze[7][6]=0;maze[7][7]=maze[9][3]=maze[9][8]=maze[9][10]=0;for(i=1;i<=5;i++)maze[8][i]=0;for(i
6、=8;i<=10;i++)maze[8][i]=0;maze[10][8]=maze[6][4]=maze[8][7]=maze[10][10]=0;}//构建系统迷宫voidMigong(){cout<<"************欢迎使用迷宫************";while(1){inti;cout<<"请选择你要的操作:"<<"1.输出所有路径及最短路径"<<"0.返回上一级菜单";cout<<"请输入:";cin>>i;cout<<"--------------------------
7、-";switch(i){case1:{Put_in();PutOut_all();break;}case0:return;default:cout<<"*****输入错误,请重新输入!*****";break;}}}//系统自带迷宫操作函数voidPutOut_Grap(){inti;cout<<"迷宫图形:"<8、e[i][j];cout<>p>>q;i1=p;j1=q;
8、e[i][j];cout<>p>>q;i1=p;j1=q;
此文档下载收益归作者所有