数据结构C语言迷宫求解问题(有要求和源代码).doc
数据结构C语言迷宫求解问题(有要求和源代码).doc
(完整word版)数据结构C语言迷宫求解问题(有要求和源代码)1、 迷宫求解设计一个迷宫求解程序c语言走迷宫 有钥匙,要求如下:ü 以M × N表示长方阵表示迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。ü 能任意设定的迷宫ü (选作)如果有通路,列出所有通路提示:ü 以一个二维数组来表示迷宫,0和1分别表示迷宫中的通路和障碍数据结构C语言迷宫求解问题(有要求和源代码).doc,如下图迷宫数据为:1入口位置:1 1出口位置:8 8ü 探索过程可采用如下算法,设定当前位置的初值为入口位置;do { 若当前位置可通,则{将当前位置插入栈顶; 若该位置是出口位置c语言走迷宫 有钥匙,则结束; 否则切换当前位置的东邻方块为新的当前位置; }否则,{ 若栈不空且栈顶位置尚有其他方向未经探索c语言走迷宫 有钥匙, 则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则{删去栈顶位置; //从路径中删去该通道块 若栈不空,则重新测试新的栈顶位置数据结构C语言迷宫求解问题(有要求和源代码).doc,直至找到一个可通的相邻块出栈至栈空;}}}while (栈不空);### 32int a;int b;int m,n; { int i; int j; int di;}Box; { Box data; int top;};bool (int X,int Y,int X1,int Y1);void main(){ int X,Y,Y1,X1; (a,0,(a));(b,0,(b));// for() ("请输入迷宫的长度和宽度\n"); while(~scanf("%d%d",&m,&n)){ ("请输入迷宫(0表示空地,1表示围墙)\n"); for(int i=0;i=0&&i=0&&j-1); false;}宁波工程学院 计科12-1班