JAVA算法:走迷宫
如图所示:二维矩阵,0代表通路,1代表障碍,形成一个迷宫。
求走迷宫的路线。
{ 0, 1, 0, 0, 0 },
{ 0, 1, 0, 1, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 1, 1, 1, 0 },
{ 0, 0, 0, 1, 0 }
算法设计
package com.bean.algorithm.dfsbfs;
import java.util.Stack;
public class MazeDemo {
//声明一个内部类Point
private class Point {
int x = 0;
int y = 0;
public Point() {
this(0, 0);
}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public boolean equals(Point p) {
return (x == p.x) && (y == p.y);
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
}
//使用二维数组maze来表示迷宫
private int[][] maze = null; // 迷宫图
private Stack<Point> stack = new Stack<Point>();
// 保存路径的栈