Ich übe auf DFS, aber mein Code ging irgendwo schief, dass ich nicht beheben kann. Hier ist mein Code:Durchführung Tiefe erste Suche
public static <T> void doSearch(Dimension start, Dimension end, char[][] grid) {
System.out.println(start);
while (true) {
if (checkEqual(start, end)) {
break; // stop searching
}
getPossibleMoves(start, grid);
doSearch(moves.pop(), end, grid);
}
} // the end
In meinem doSearch()
Methode, ich habe die „bewegt“ Stapel bewegt zu speichern, die possibleMoves()
Verfahren die möglichen Züge zu finden, die Sie aus dem „Start“ machen. Aber wenn die Methode checkEqual()
prüft, dass ich das Ziel erreicht habe, bricht sie aus der while-Schleife aus und geht zum Ende, kehrt aber immer noch zur while-Schleife zurück, so dass die doSearch()
-Methode niemals stoppt. Wo mache ich den Fehler?
Werfen Sie einen Blick auf [fragen] und [MCVE] – pvg