1、 迷宫求解设计一个迷宫求解程序,要求如下:以 M × N 表示长方阵表示迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。能任意设定的迷宫(选作)假如有通路,列出所有通路提示:以一个二维数组来表示迷宫,0 和 1 分别表示迷宫中的通路和障碍,如下图迷宫数据为:1111111111100100010110010001011000011001101110000110001000011010001001101110110111000000011111111111入口位置:1 1出口位置:8 8探究过程可采纳如下算法,设定当前位置的初值为入口位置;do {若当前位置可通,则{将当前位置插入栈顶; 若该位置是出口位置,则结束; 否则切换当前位置的东邻方块为新的当前位置; }否则, { 若栈不空且栈顶位置尚有其他方向未经探究, 则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则{删去栈顶位置; //从路径中删去该通道块 若栈不空,则重新测试新的栈顶位置,直至找到一个可通的相邻块出栈至栈空;}}}while (栈不空);#include#include#define MaxSize 32int a[30][30];int b[30][30];int m,n;typedef struct {int i;int j;int di;}Box;typedef struct{Box data[MaxSize];int top;}StackType;bool sereach(int X,int Y,int X1,int Y1);void main(){int X,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(int i=0;i