問題描述:在乙個迷宮裡,規定「 0」代表可以通過,「1」代表有障礙物。
尋求從初始值(row0,col0)到末值(row,col)最短路徑是多少
例:0 0 1 0
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
在兩點之間一定能到達的前提下。。。。。要不然就沒意思了。。。
#includeusing namespace std;
int row = 0, col = 0, min = 100000;//行,列,最短路徑
int a[50][50], book[50][50];
int starty, startx = 0;//開始座標
int endx, endy = 0;//結束座標
void dfs(int x, int y, int step)
,//向左走
,//向下走
,//向右走
};//向上走
if ((x == endx) && (y == endy))
for (int k = 0; k < 4; k++) //上下左右四個方向進行搜尋 }
return;
}int main()
cout << endl;
} book[startx][starty] = 1;
dfs(startx, starty, 0);
cout << min;
return 0;
}
DFS深度優先搜尋 之 兩點」遊戲
上次我們講過回溯,是一種 通用解題法 這裡我們要講的dfs是一種對圖或樹的搜尋,是對回溯思想的一種在樹 圖遍歷 the tree graph it deals with is explicitly constructed 上的應用和實現。從起點出發,走過的點要做標記,發現有沒走過的點,就隨意挑乙個往...
棧 深度優先搜尋與回溯演算法求解迷宮
利用棧和回溯演算法求解迷宮 這是老師帶著做的,自己寫不知道什麼時候能調出來 這就是和老師的差距,這樣的程式他就10幾分鐘而已 code include define max row 5 define max col 5 int maze max row max col struct pointsta...
隨機迷宮生成與尋路演算法(1)深度優先搜尋
接下來一段時間,想要研究下隨機迷宮生成演算法,打算在有空可時候偶爾更新一下這方面的學習過程。隨機迷宮的生成演算法有很多種,比如遞迴回溯,遞迴分割,隨機prime等等。今天是第一次嘗試隨機迷宮生成,就先試一下用遞迴的方法通過深度優先搜尋來生成隨機迷宮。首先我們來明確一下基本觀念,迷宮可以通過乙個二維陣...