1.什麼是遞迴?
自己呼叫自己,每次傳入的方法引數不同。
2.需求:
終止條件,和遞迴規律
**:
package com;
public class mul
//設定擋板
map[3][1]=1;
map[3][2]=1;
map[1][2]=1;
map[4][4]=1;
map[4][5]=1;
//列印地圖
for(int a:map)
system.out.println();
}system.out.println("********************===");
//使用遞迴找路:
findway(map,1,1);
//列印地圖
for(int a:map)
system.out.println();}}
//使用遞迴回溯來給小球找路
//1.先傳給地圖,告訴他從哪開始尋找
//如果找到通路,返回true,否則false
//約定:如果找到map[6][5];
//若map[i][j]為0時,表示還沒走過;1表示牆;2表示通路;3走過了但走不通
//走之前確定乙個策略:下右上左
public static boolean findway(int map,int i,int j)else if(findway(map,i,j+1))else if(findway(map,i-1,j))else if(findway(map,i,j-1))else
}else}}
}
思考:
如何走出最短路徑?
我們在這裡走的是自己規定的策略,所以走的路線和自己最初規定的策略有關。
遞迴(recursive) 迷宮回溯問題
建立乙個二維陣列 表示地圖 約定不同的數字表示不同的含義。元素的值,0 表示可以走還沒走過,1 牆,2 表示可以走,3 表示已經走過了,但是是死路。確定乙個策略。下 右 上 左。package chapter18.recursive object migong 左右全部置1 for i 0 unti...
遞迴演算法 迷宮回溯問題
package com.czn.recursion 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 boolean setway setway map,1,1...
遞迴與迷宮回溯問題
package com.dai.recursion public class migong 左右全置1 for int i 0 i 8 i 設定擋板 map 3 1 1 map 3 2 1 map 1 2 1 map 2 2 1 輸出地圖 system.out.println 地圖情況 for in...