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