棧的尋路 做乙個迷宮

2021-10-10 23:01:19 字數 1335 閱讀 1963

#include

#include

/*陣列裡面去尋路:位置-->通過行和列去尋找*/

struct position

;/*我們需要乙個棧,去儲存路徑,棧的容器就是乙個結構體陣列*/

struct position pathstack[

100]

;/*棧記憶體存放路徑*/

int stacktop =-1

;/*棧頂標記*/

int*

*maze =

null

;/*可以用二維指標去描述二維陣列,用二維陣列描述地圖*/

int size =0;

/*迷宮的大小*/

int*

*makearray

(int row,

int cols)

return arraay;

}/*使用者輸入乙個迷宮*/

void

createnaze()

/*加邊框:1 表示不可以走*/

for(

int i =

0; i <= size +

1;i++)}

}//找路徑

intfindpath()

,,,}

;/*選定路口*/

struct position here =

;/*當前移動的位置*/

/*走迷宮:記錄走過的路徑*/

maze[1]

[1]=

1;;/*走過的地方都標記為1*/

int option =0;

//下乙個移動方向

int endoption =3;

//終止方向

while

(here.row!=size||here.rols != size)

/*終點位置是size,不等於終點位置就一直往下去找*/

/*可以移動*/

if(option <= endoption)

else

//option = 4;表示沒有可以走的地方

else

here = next;

/*位置回退到上一步*/}}

return1;

}/*列印路徑*/

void printpath

printf

("\n");

}int

main()

else

system

("pause");

return0;

}

資料結構 棧實現迷宮尋路問題

思路 解決迷宮求解的問題,從入口出發,順某一方向向前探索,若能走通,則繼續往前走 否則沿原路退回,換乙個方向再繼續探索,直至所有可能的通路都探索到為止。為了保證在任何位置上都能沿原路退回,所以需要用乙個後進先出的結構來儲存從入口到當前位置的路徑。因此,在求迷宮通路的演算法 塊maze.h defin...

尋路的乙個藏的很深的bug

我用的是heap來優化尋路,我利用compare函式來比較兩個節點的f值,判斷是否是最優節點。但是heap操作的時候,利用的也是campare,所以經常會移除錯誤的節點。最終我打算重寫這個函式 public bool remove t item if i count return false arr...

做乙個programmer,而不做乙個coder

programmer是程式的思考者,而coder只是乙個執行者 勞心者製人,勞力者制於人 如果專案不緊的情況下,應該從需求做起,最好能夠窮盡所有的需求,遇到與別人模組互動的情況,規定好與別人互動的介面。然後才是開始設計,抓住需求當中的名詞,想想是否設計成為類,然後根據測試用例,來設計框架結構,至少要...