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;
}
}
我試圖找出客場父節點連接到孩子,所以我可以跟蹤連接返回到起點和返回的路徑。