关于迷宫问题的dfs与bfs两中求解方式
说明:
1、迷宫用10*10的int二维数组存储,其中1表示墙壁,0表示通路;
2、为了方便处理迷宫外围用一层墙壁包围需用户手动输入;
3、该代码默认起点为物理地址坐标(1,1),终点为物理地址坐标(8,8);
dfs 处理
import java.util.Scanner;
public class Main {
public static int[][] r = new int[10][10]; //r[i][j]表示迷宫当前搜索的方向1上2右3下4左
public static MiGong migong = new MiGong(); //创建迷宫
public static void main(String[] args) {
dfs(1, 1); //物理坐标(1,1)作为起点坐标开始搜索
}
public static void dfs(int x, int y) { //递归开始实现深搜
if (x == 8 && y == 8) { //递归结束点,表示当找到出口时输出路径并停止递归
printMiGong();
return;
}
migong.map[x][y] = 1; //当前位置标记为已访问避免重复搜索
for (r[x][y]++; r[x][y] < 5; r[x][y]++) { //递归