棧實現迷宮求解問題

2021-06-08 13:35:28 字數 717 閱讀 3960

總體感觸是:不要著急,一步一步來,問題很容易解決的。

首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。

要儲存哪些資訊。一張地圖的某乙個方格需要標示:能否通過,是否走過了。

94 struct point;

位置資訊可用postype儲存。就是:

struct posttype

int x;

int y;

地圖四周一圈都設定為不可走,避免每次判斷是否越過了地圖邊界。

這樣可以大致寫出迷宮類:maze

const int maze_size_x = 10;

const int maze_size_y = 10;

class maze;

下一步要想,壓棧的時候,壓入什麼內容?第一,最重要的是,該格仔的位置:postype;第二,從該格仔出發的方向;第三,作為記錄,要記下當前是第幾步。如下:

68 struct elemtype;

如果當前位置可通,則切換下乙個格仔為當前位置;

如果當前位置不可同,則順著來的方向,找到倒數第乙個格仔a,切換下乙個格仔為當前位置,如果a四個方向都試過了,還是不通,則再次

出棧乙個b,按照剛才的方法測試,直至棧空為止。

棧求解迷宮問題

問題 假設下圖1是某迷宮的地圖 0代表路徑,1代表牆壁 問此迷宮是否有條通路?求解思想 用棧來實現解決問題,主要步驟是 1 將迷宮的入口座標設為當前座標 2 將當前座標壓棧,將當前座標上的值設為2 0變為2 代表已走過的路 3 判斷當前座標的四周 上下左右 是否是可以通 為0則通 的,如果是通的,那...

棧 求解迷宮問題

問題 在迷宮中尋找一條路徑 演算法分析 將迷宮數值化,使用二維陣列來表示迷宮,牆單元用0,通道單元用1 如果能夠通過繼續前進,如果不能通過則退回到上乙個單元,因此用棧來儲存通過的路徑 用0,1,2,3來分別表示4個方向 include pch.h include include include in...

迷宮求解 棧的實現

一 題目及分析 二 思路 迷宮 迷宮的檔案儲存方式 三 include include define length 10 define width 10 define start hang 1 從0行開始計算row define start lie 1 從0列開始column define end ...