DFS求解迷宫问题(输出所有的路径)

您所在的位置:网站首页 算法迷宫问题实训结论怎么写的 DFS求解迷宫问题(输出所有的路径)

DFS求解迷宫问题(输出所有的路径)

2024-07-09 20:58| 来源: 网络整理| 查看: 265

问题:给出一个n*n的迷宫,起点为(0,0),终点为(n-1,n-1).可以向上、下、左、右四个方向走.

任务:1.判断是否有可行路径

           2.如果有可行路径,输出所有的可行路径.

————————————————————————————————————————————————————

如下图所示,当前位置为中间点,如果中间点不是终点,那么会从4个方向进行下一步探测,进入到一个新的点之后,再从4个方向(事实上不会)再进行同样的探测.之前走过的点需要将这个点标记为[走过].

代码如下:

#include #include using namespace std; int maze[10][10];//迷宫 int vis[10][10];//记录迷宫中的某个位置是否访问过 int n,m; int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};//四个方向 struct point//位置 { int x,y; } p; stack path,temp;//记录路径,temp是一个临时变量,和path一起处理路径 int count;//路径条数 void dfs(int x,int y)//x,y:当前位置 { if(x==n-1 && y==m-1)//成功---下面处理路径问题 { cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3