正文

迷宫全部路径递归算法2006-06-21 21:22:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/argol/16098.html

分享到:

#include <iostream>using namespace std; #define N 4#define M 4 int x,y;enum direction{UP,DOWN,LEFT,RIGHT}; char Maze[N][M] = {                  '1','1','1','1',                  '1','1','0','1',                  '1','0','1','1',                  '1','1','1','1'                  };                   bool visited[N][M]={false}; bool available(int i,int j){     if (i == -1 || i == N)return false;     if (j == -1 || j == M)return false;     if (visited[i][j] == true)return false;     if (Maze[i][j] == '0')return false;          return true;} void MazePath(int i,int j,direction d){      visited[i][j] = true;     if (i == x && j == y)    {          Maze[i][j] = '*';          for (int u = 0; u < N; u++)          {              for (int w = 0; w < M; w++)                cout << Maze[u][w] << " ";              cout << endl;          }          Maze[i][j] = '1';          visited[i][j] = false;          cout << endl;    }    else    {        int a,b;        //向上探索        a = i-1;        b = j;        if (d != DOWN && available(a,b) == true)        {          Maze[i][j] = '*';          MazePath(a,b,UP);          Maze[i][j] = '1';         }                //向下探索        a = i+1;        b = j;        if (d != UP && available(a,b) == true)        {          Maze[i][j] = '*';          MazePath(a,b,DOWN);          Maze[i][j] = '1';         }                //向左探索        a = i;        b = j-1;        if (d != RIGHT && available(a,b) == true)        {          Maze[i][j] = '*';          MazePath(a,b,LEFT);          Maze[i][j] = '1';         }                 //向右探索        a = i;        b = j+1;        if (d != LEFT && available(a,b) == true)        {          Maze[i][j] = '*';          MazePath(a,b,RIGHT);          Maze[i][j] = '1';        }         }    visited[i][j] = false;} int main(){    x = y = 3;    MazePath(0,0,DOWN);    system("pause");    return 0;}

阅读(4421) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册