0
私はDFSで練習していますが、私のコードは修正できないところで間違っていました。ここに私のコードです:私のdoSearch()
方法で深さの最初の検索を実行する
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
、私は、あなたが「開始」から行うことができます可能な動きを見つけるためpossibleMoves()
方法の動きを保存するために「移動」のスタックを持っています。しかし、checkEqual()
メソッドが私がターゲットに到達したことをチェックすると、それはwhileループから壊れて終了に行きますが、whileループに戻りますので、doSearch()
メソッドは決して停止しません。どこでミスをしますか?
[ask]と[MCVE]を見てください – pvg