遞迴求解迷宮最簡訊道的總步長。輸入乙個迷宮,求從入口通向出口的可行路徑中最短的路徑長度。為簡化問題,迷宮用二維陣列 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...