內(nèi)容簡介:
包含源代碼,在Turbo C和VC上均測試通過。題目如下:
用矩陣M×N表示一個迷宮,0和1分別表示通路和墻壁。試求出從入口點到達(dá)出口點的一條通路。
基本思想:若當(dāng)前位置可以通過,則壓入棧中,否則探求下一位置,若走不通,則回朔,迷宮大小:M*N.迷宮設(shè)置自定義。
求解迷宮問題的簡單方法是:從入口出發(fā),沿某一方向進(jìn)行探索,若能走通,則繼續(xù)向前走;否則沿原路返回,換一方向再進(jìn)行探索,直到所有可能的通路都探索到為止。
為避免走回到已經(jīng)進(jìn)入的點(包括已在當(dāng)前路徑上的點和曾經(jīng)在當(dāng)前路徑上的點),凡是進(jìn)入過的點都應(yīng)做上記號。
求迷宮中一條從入口到出口的路徑的算法可簡單描述如下:
設(shè)定當(dāng)前位置的初值為入口位置:
do
{
若當(dāng)前位置可通,則
{
將當(dāng)前位置插入堆棧頂;
若該位置是出口位置,則結(jié)束;
否則切換當(dāng)前位置的東鄰塊為新的當(dāng)前位置;
}
否則,
若堆棧不空且棧頂位置尚有其他方向未經(jīng)探索; 則設(shè)定新的當(dāng)前位置為沿順時針方向轉(zhuǎn)到的棧頂位置的下一相鄰塊;
若棧不空但棧頂位置的四周均不可通, 則
{
刪去棧頂位置;
若棧不空,則重新測試新的棧頂位置,
直至找到一個可通的相鄰或出棧至?;
}
相關(guān)說明:
1. 如您下載的資料不止一份,建議您注冊成為本站會員。會員請登錄后下載。
2. 會員購買金幣50元以下,0.7元/個,50元以上,0.5元/個。具體請看:下載與付款。
3. 會員48小時內(nèi)下載同一文件,不重復(fù)扣金幣。
4. 下載后請用WinRAR或 WinZIP解壓縮后使用。
5. 如仍有其他下載問題,請看常見問題解答。
下載地址:
|