深搜
2025-09-13 12:00:14
发布于:广东
5阅读
0回复
0点赞
#include <iostream>
using namespace std;
//定义迷宫大小的变量、起点、终点
int n,m,sx,sy,fx,fy;
//定义方向数组。作用是看怎么走出迷宫的
int dx[]={0,0,-1,1};
int dy[]={1,-1,0,0};
//定义迷宫地图
int mp[50][50];//int或者char 取决于题目给你什么样的
//定义标记地图;
bool vis[50][50];//0表示没有走过,1表示走过了
void dfs(int x,int y){
vis[x][y]=1;
if(x==fx&&y==fy){
//判断现在是不是终点了;
//做什么事情要考虑一下。
return ;
}
for(int i=0;i<4;i++){
int nx = x+dx[i];//看下一步的坐标
int ny = y+dy[i];
// 下一步在地图大小内 下一步地图上能走 你没有走过
if(nx>=1 && nx<=n && ny>=1 && ny<=m && mp[nx][ny]== ? && vis[nx][ny]==0 ) {
vis[nx][ny] = 1;
dfs(nx,ny);
vis[nx][ny] = 0;//回溯,需要多次到达终点的情况,就回溯。
}
}
}
int main(){
//输入的目的:确定迷宫大小、确定迷宫地图、确定起点终点
dfs(sx,sy);//sx起点,sy终点
//输出题目要的
return 0;
}
这里空空如也
有帮助,赞一个