先用二維陣列模擬出**,給部分**賦值1來說明是牆壁(紅色部分)
public設定尋路的方法,按照設定的策略(如下右上左)來逐個進行遞迴,如果能走通,這條路線標識為2,走不通(無法到達指定終點)遞迴進行回溯,將走過的路置為3static
void
main(string args)
//設定障礙
map[3][1]=1;
map[3][2]=1;
//map[1][2]=1;
//map[2][2]=1;
//列印**
for (int i=0;i<10;i++)
system.out.println();
}//進行尋路
setway(map,1,1);
//列印**
system.out.println("尋路完成");
for (int i=0;i<10;i++)
system.out.println();}}
判斷這條路是否可行: 1是牆,2是走過的路,3是走不通的路
//執行結果是:設定策略方法(下右上左)
public
static
boolean setway(int map,int i,int j)
else
else
if (setway(map,i,j+1))
else
if (setway(map,i-1,j))
else
if (setway(map,i,j-1))
else
}else
}
注意:選擇的策略不同,迷宮的查詢路徑就不同
如何獲取最短路徑?
可以統計不同的策略生成的路線,通過獲取策略的路徑長度來比較出最短路徑的策略
如上面這種策略,統計路徑長度
//統計路長
int count=0;//
長度for (int i=0;i<10;i++)}}
system.out.println("路徑長"+count);
迷宮問題 遞迴解決
建立人 wdl 建立時間 2021 3 21 描述 public class migong 左右全部置為1 for int i 0 i 8 i 設定擋板,1表示 map 3 1 1 map 3 2 1 map 1 2 1 map 2 2 1 輸出地圖 system.out.println 地圖的情況...
遞迴解決走迷宮問題
public static void main string args for int i 0 i 7 i maze 3 1 1 maze 3 2 1 maze 1 2 1 maze 2 2 1 for int i 0 i 8 i system.out.println if mazegame maz...
利用遞迴解決迷宮問題
利用遞迴解決迷宮問題 author rocco l public class migong for int i 0 i 8 i map 3 1 1 map 3 2 1 遍歷輸出地圖 for int i 0 i 8 i system.out.println 使用遞迴回溯給小球找路 setway map...