從圖中可以得到乙個5*5的二維矩陣,利用深度搜尋演算法,求出最短路徑。從最後的執行結果,可以直觀的看出搜尋的過程
**實現如下:
#include "pch.h"
#include #include #include using namespace std;
#define m 99999999
const int citynum = 5;
const int citymap[citynum][citynum] =
;bool book[citynum] = ;
int imin = m;
vectorvecpath;
void showpath()
}void dfs(int icur, int ides, int idis)
if (ides == icur)
showpath();
printf("->minpath:%d\r\n", imin);
return;
} for (int i=0; i%dx\r\n", i + 1);
} }}int main()
執行結果:列印出路徑
練習 最短路徑 深度搜尋
乙個根據深度搜尋模型寫的最短路徑 參考如下 啊哈演算法 4.2 p81 最短路徑 public class shortpath 向右走 向下走 向左走 向上走 地圖是乙個5 5的矩陣 public static int x 5,y 5 定義終點 public static int ex 2,ey 2...
迷宮(深度搜尋 存最短路徑)
問題描述 定義乙個二維陣列 定義乙個5 5的陣列maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。輸入 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。輸出 左上角到右下角的最短路徑,格式如樣例所...
A (路徑搜尋)演算法
a 演算法是路徑搜尋中的經典演算法,也是公認的最優演算法之一。開始 搜尋區域 這裡假設有人要從a點去往b點,另外有一面牆將兩者分開。如下圖所示,綠色方塊代表a點,紅色方塊代表b點,藍色代表分開他們的牆。圖一首先要注意的是我們這裡先將整個搜尋區域網格化,以方便路徑搜尋。這一方法將搜尋區域簡化為乙個簡單...