0
我意识到这个问题已被问了好几次,但我只是想了解如何把它放到上下文中。我试图找出如何使用广度优先搜索在迷宫中找到最短路径。我得到了一个创建迷宫的程序,我试图找到通过它的最短路径。如何使用广度优先搜索在迷宫中找到最短路径?
package solver;
import java.awt.Point;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class BreadthFirstSearch extends AbstractSolver {
@Override
public List<Point> solve(int[][] maze, Point start, Point goal) {
LinkedList<Point> path = new LinkedList<Point>();
List<Point> prevPoints = new LinkedList<Point>();
Queue<Point> agenda = new LinkedList<Point>();
List<Point> visited = new LinkedList<Point>();
agenda.add(start);
visited.add(start);
while(!agenda.isEmpty()) {
Point current = agenda.remove();
for(Point neighbour : getNeighbours(current, maze)) {
if(!visited.contains(neighbour)) {
visited.add(neighbour);
agenda.add(neighbour);
}
}
}
return null;
}
}
我试图找出客场父节点连接到孩子,所以我可以跟踪连接返回到起点和返回的路径。