資料結構16 遞迴 迷宮問題

2021-10-01 18:44:05 字數 1736 閱讀 8009

//再把左右兩行都設定為1

for(

int i=

0;i)//設定擋板

map[3]

[1]=

1;map[3]

[2]=

1;//輸出地圖

代表二維陣列的行數

for(

int i=

0;i) system.out.

println()

;}system.out.

println

("小球走過的路線:");

//使用遞迴回溯給小球找路

setway

(map,1,

1);//輸出新的地圖,小球走過的地圖

代表二維陣列的行數

for(

int i=

0;i) system.out.

println()

;}}/**

* 使用遞迴回溯給小球找路

* @param map 地圖

* @param i 從哪個位置開始找

* @param j

* @return 如果找到通路,就返回true,否則返回false

* */

//i,j表示從地圖的哪個位置開始出發(1,1)

//如果小球能到達map[6][5]位置,說明通路找到

//map[i][j]為0表示該點沒有走過,為1表示為牆走不通,為2表示通路可以走,為3表示該點已經走過,但是走不通

//走迷宮時,需要確定乙個策略:下-->右-->上-->左,如果走不通,再回溯(走的策略有很多,不止乙個)

將策略修改為:上右下左

資料結構 迷宮(遞迴)

如下 include include using namespace std define max row 10 巨集定義行 define max col 10 巨集定義列 struct seat int x int y class maze void printmaze 列印迷宮 cout end...

資料結構 遞迴思想及遞迴實現迷宮問題

遞迴 就是自己呼叫自己,然後一層層返回 乙個簡單的例子 列印問題 public static void main string args 列印問題 我們可以分析這個程式的執行過程 程式的方法在虛擬機器的棧空間執行 這就是遞迴的過程 有這樣乙個迷宮,從起點到終點,紅色是牆,黃色的是路,可以走,一次走一...

資料結構 迷宮問題

迷宮問題的總體思路是,從迷宮的入口出發,沿著某乙個方向向前試探,若能夠行得通,則繼續往前走,否則原來返回,再換另乙個方向繼續試探,直到所有可能的通路都被試探過,為了保證在任何乙個位置都能夠原來返回,需要設定乙個堆疊結構來儲存從入口到當前位置的路徑。maze.h pragma once include...