经典迷宫问题

Posted *平芜尽处是春山*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典迷宫问题相关的知识,希望对你有一定的参考价值。

经典迷宫问题

问题描述:迷宫有一个入口,一个出口。一个人从入口走进迷宫,目标是找到出口。阴影部分和迷宫的外框为墙,每一步走一格,每格有四个可走的方向,探索顺序为地图方向:南(下)、东(右)、北(上)、西(左)。
图片详情:

代码实现:

public class labyrinth 
    public static void main(String[] args) 
        int[][] map = new int[8][7];
        for (int i = 0; i < 8; i++) 
            for (int j = 0; j < 7; j++) 
                map[0][j] = 1;
                map[7][j] = 1;
                map[i][0] = 1;
                map[i][6] = 1;
            
        
        map[3][1] = 1;
        map[3][2] = 1;
        for (int i = 0; i < 8; i++) 
            for (int j = 0; j < 7; j++) 
                System.out.print(map[i][j] + " ");
            
            System.out.println();
        
        setWay(map,1,1);
        System.out.println("迷宫走过之后地图");
        for (int i = 0; i < 8; i++) 
            for (int j = 0; j < 7; j++) 
                System.out.print(map[i][j] + " ");
            
            System.out.println();
        
    

    private static boolean setWay(int[][] map,int i,int j) 
        if(map[6][5] == 2) 
            return true;
         else 
            if(map[i][j] == 0) 
                map[i][j] = 2;
                if (setWay(map, i + 1, j)) 
                    return true;
                 else if (setWay(map, i, j + 1)) 
                    return true;
                 else if (setWay(map, i - 1, j)) 
                    return true;
                 else if (setWay(map, i, j - 1)) 
                    return true;
                 else 
                    map[i][j] = 3;
                    return false;
                
             else 
                return false;
            
        
    

运行截图:

以上是关于经典迷宫问题的主要内容,如果未能解决你的问题,请参考以下文章

C/C++迷宫问题详情分析--栈的应用

蓝桥杯 算法提高 学霸的迷宫 经典BFS问题

HDU 1728 逃离迷宫(DFS经典题,比赛手残写废题)

python每日算法 | 数据结构基础:栈与队列以及经典的迷宫问题

[bfs最短路] aw1076. 迷宫问题(bfs最短路+模板题)

H - 迷宫问题