7 2 求迷宮最簡訊道 20分

2021-10-10 03:26:43 字數 1101 閱讀 3074

遞迴求解迷宮最簡訊道的總步長。輸入乙個迷宮,求從入口通向出口的可行路徑中最短的路徑長度。為簡化問題,迷宮用二維陣列 int maze[10][10]來儲存障礙物的分布,假設迷宮的橫向和縱向尺寸的大小是一樣的,並由程式執行讀入, 若讀入迷宮大小的值是n(3輸入迷宮大小的整數n, 以及n行和n列的二維陣列(陣列元素1代表障礙物,0代表空位)

若有可行的通道則輸出乙個整數,代表求出的通道的最短步長;若沒有通道則輸出"no solution"

//定義迷宮

int len=

100;

//定義迷宮步數

int n;

//定義迷宮行列數

void

search

(int x,

int y,

int flag)

else

//左if

(maze[x+1]

[y]==0)

//右if

(maze[x]

[y-1]==

0)//上if

(maze[x]

[y+1]==

0)//下}

}int

main

(void

)這個小題的遞迴很好理解,看過網上許多關於這個小題的版本,個人感覺這樣做**最為精簡和通俗易懂。

BFS 迷宮問題(求最短路)

題目 給定乙個大小為 n m 的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四格 的通道移動。請求出從起點到終點所需的最小步數。請注意,本題假定從起點一定可以移動 到終點。限制條件 bfs 迷宮問題自己寫 created by showlo on 2018 4 13.include inc...

PTA 7 2 求集合交集 20 分

include include include include using namespace std typedef int t const int defaultsize 100 class seqlist public seqlist int sz defaultsize 建構函式 seqli...

迷宮問題(求最短路徑長度和最短路徑)

描述 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。輸入乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。輸出左上角到右下角的最短路徑,格式如樣例所示。樣例輸入 0 1...