迷宮圖案,白色代表通道,黑色代表牆。
迷宮入口座標(1,1),出口座標(8,8)
0 1 2 3 4 5 6 7 8 9
0■■■■■■■■■■
1■□□■□□□■□■
2■□□■□□□■□■
3■□□□□■■□□■
4■□■■■□□□□■
5■□□□■□□□□■
6■□■□□□■□□■
7■□■■■□■■□■
8■■□□□□□□□■
9■■■■■■■■■■
程式源**(vc++ 6.0下編譯通過)
#includeusing namespace std;
const int size_x = 10;
const int size_y = 10;
//data struct
struct mpoint
mpoint* next;
};//function declaration
class mstack
;int main(), ,
, ,, ,
, , ,
};//迷宮矩陣
for(int i = 0; inext = mpnode;
top = mpnode;
} return ++length;
}mpoint mstack::gettop()
mpoint mstack::pop()
top = top->next;
} if (length == 1)
length--;
return retpoint;
}int mstack::getlength()
void mstack::printstack()
}
本程式堆疊用單向動態鍊錶實現,當然可以用其他資料結構,比如雙向鍊錶。
程式輸出結果:
path:
(1,1)
(2,1)
(3,1)
(4,1)
(5,1)
(5,2)
(5,3)
(6,3)
(6,4)
(6,5)
(7,5)
(8,5)
(8,6)
(8,7)
(8,8)
PDSOJ 1759 逃出迷宮
時間限制 1 sec 記憶體限制 128 mb 提交 25 解決 13 提交 狀態 討論版 現在有乙個迷宮,a 代表起點位置,代表可以通行的路,代表不能通過的牆,x 代表迷宮的守衛,r 代表終點位置,現在要求你算出起點位置到終點位置的最短時間,其中通過 時,消耗1個單位時間,通過 x 消耗兩個單位時...
迷宮演算法c 實現
迷宮演算法是乙個比較簡單的演算法,是在迷宮裡如何通過從入口找到出口,總的思路來是 每一條路都是由兩面呢牆壁組成,並且是每一面是連續的,只要我們從入口延著乙個牆壁一直走,例如一直沿著右手邊的牆壁來走,就一定可以找到出口,即便是乙個死胡同,沿著牆壁也可以繞出來。t 上圖可以看成乙個簡易的迷宮,代表牆,空...
a 演算法迷宮 c 迷宮中的老鼠
之前我們已經討論了採用回溯 backtracking 方法來解決西洋棋中馬的遍歷問題。為了讓大家更加熟悉回溯方法,我們將在後面的課程中再分析幾個例子。今天先看乙個使用回溯方法解決老鼠走迷宮的問題。下圖是乙個迷宮,其中塗上灰色的方格,老鼠不能進入,請找出老鼠從起點到終點的線路。老鼠只能向兩個方向移動 ...