逃出迷宮完整演算法C

2021-07-05 20:21:07 字數 1176 閱讀 9204

迷宮圖案,白色代表通道,黑色代表牆。

迷宮入口座標(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 方法來解決西洋棋中馬的遍歷問題。為了讓大家更加熟悉回溯方法,我們將在後面的課程中再分析幾個例子。今天先看乙個使用回溯方法解決老鼠走迷宮的問題。下圖是乙個迷宮,其中塗上灰色的方格,老鼠不能進入,請找出老鼠從起點到終點的線路。老鼠只能向兩個方向移動 ...