迷宮回溯 遞迴

2021-10-04 04:32:59 字數 899 閱讀 1029

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...