




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
(完整word版)数据结构C语言迷宫求解问题(有要求和源代码) (完整word版)数据结构C语言迷宫求解问题(有要求和源代码) (完整word版)数据结构C语言迷宫求解问题(有要求和源代码) 迷宫求解 设计一个迷宫求解程序,要求如下: 以M×N表示长方阵表示迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 能任意设定的迷宫 (选作)如果有通路,列出所有通路 提示: 以一个二维数组来表示迷宫,0和1分别表示迷宫中的通路和障碍,如下图迷宫数据为: 1111111111 1001000101 1001000101 1000011001 1011100001 1000100001 1010001001 1011101101 1100000001 1111111111 入口位置:11 出口位置:88 探索过程可采用如下算法,设定当前位置的初值为入口位置; do{ 若当前位置可通, 则{ 将当前位置插入栈顶; 若该位置是出口位置,则结束; 否则切换当前位置的东邻方块为新的当前位置; } 否则, { 若栈不空且栈顶位置尚有其他方向未经探索, 则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则{删去栈顶位置;//从路径中删去该通道块 若栈不空,则重新测试新的栈顶位置, 直至找到一个可通的相邻块出栈至栈空; } } }while(栈不空); #include<stdio.h> #include<string.h> #defineMaxSize32 inta[30][30]; intb[30][30]; intm,n; typedefstruct { inti; intj; intdi; }Box; typedefstruct { Boxdata[MaxSize]; inttop; }StackType; boolsereach(intX,intY,intX1,intY1); voidmain() { intX,Y,Y1,X1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); // for() printf("请输入迷宫的长度和宽度\n"); while(~scanf("%d%d",&m,&n)){ printf("请输入迷宫(0表示空地,1表示围墙)\n"); for(inti=0;i<n;i++){ for(intj=0;j<m;j++){ scanf("%d",&a[i][j]); if(a[i][j]==1) b[i][j]=-1; } } printf("请输入迷宫起点的行号和列号\n"); scanf("%d%d",&X,&Y); printf("请输入迷宫终点的行号和列号\n"); scanf("%d%d",&X1,&Y1); if(!sereach(X,Y,X1,Y1)) printf("该迷宫没有解!\n"); printf("请输入迷宫的长度和宽度\n"); } // return0; } boolsereach(intX,intY,intX1,intY1) { StackTypest; inti,j,di,find; st.top=-1; while(a[X][Y]!=0) { printf("迷宫起点的行号和列号有错,请重新输入\n"); scanf("%d%d",&X,&Y); } if(a[X][Y]==0) b[X][Y]=-1; while(a[X1][Y1]!=0) { printf("迷宫终点的行号和列号有错,请重新输入\n"); scanf("%d%d",&X1,&Y1); } st.top++; st.data[st.top].i=X; st.data[st.top].j=Y; st.data[st.top].di=-1; do{ find=0; i=st.data[st.top].i; j=st.data[st.top].j; di=st.data[st.top].di; while(di<4&&find==0) { di++; switch(di) { case0:i=st.data[st.top].i-1;j=st.data[st.top].j;break; case1:i=st.data[st.to

17****21
实名认证
内容提供者


最近下载
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
论《离骚》诠释史中的“香草”意蕴.docx