正在加载图片...
11111111111 101001110…01 迷宫问题算法 10-011 101110…0-0111 10001011011 int mazePath(int maze [][11l,int direction[][2], 11001011001 111000-0-0-0-01 int x1int y1 int x2, int y2t 11111111111 /*在迷宫maze[M]N]中,求从入口maze[x1[y1到出口 mazel2]y2]的一条路径,其中1<=X1x2<=M2, 1<=y1y2<=N-2*/ for(intk=0水k<4水k++){ int g=x1+direction[k]o] h=y1+ directionkkl1] if(maze[glh) continue;//遇到墙或已经搜索过 if(g==x2&&h==y2&8maze[gh]==0){//找到路径 printf( The revers path is: \n%/od, o/od)\nx2,y2; printf("(%/od%od\n"x1,y1; return 1;y mazel]ch]=2; /标记已经搜索过 if (mazePath(maze, direction, g,h, x2, y2)==1 printf("(%od,%/od)\nx1,y1)i return 1;y return0∥/从当前点出发未找到路径8 迷宫问题算法 int mazePath(int maze[][11],int direction[][2], int x1,int y1,int x2,int y2) { /* 在迷宫maze[M][N]中,求从入口maze[x1][y1]到出口 maze[x2][y2]的一条路径,其中 1<=x1,x2<=M-2 , 1<=y1,y2<=N-2 */ for(int k=0;k<4;k++){ int g=x1+direction[k][0], h=y1 + direction[k][1]; if (maze[g][h]) continue; // 遇到墙或已经搜索过 if (g==x2&&h==y2&&maze[g][h]==0){ // 找到路径 printf("The revers path is:\n(%d, %d)\n",x2,y2); printf(“(%d, %d)\n",x1,y1); return 1;} maze[g][h]=2; // 标记已经搜索过 if (mazePath(maze,direction,g,h,x2,y2)==1){ printf(“(%d, %d)\n",x1,y1); return 1;}} return 0; // 从当前点出发,未找到路径 }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有