資料結構的實驗需要兩人組隊做推箱子,硬性要求要用bfs找出最短路徑,而且還必須要用c來寫!!好吧,做做做,誰讓結構老師那麼溫柔漂亮,只能寵著唄(實則是為了績點)。
奈何這學期不怎麼學習,不會用bfs啊,兩人在機房乾瞪眼後,動手搜搜也實在沒找到符合要求的**,最後沒學過c++的小白只能對著一段c++**寫了c版本,好在兩者很像!
只做了一人,一箱子,一終點的情況!!!!
typedef
struct positionelementtype;
//8,9是我設定的地圖的行列數
int state[8]
[9][
8][9
];//思維陣列表示人和箱子的位置狀態
int cpx,cpy,cbx,cby,ex,ey,n=
8,m=9;
//人的當前位置,箱子的當前位置,目的地的位置
void
init()
//初始化,找到人,箱子,終點的位置
else
if(map2[i]
[j]==3)
//人
else
if(map2[i]
[j]==2)
//目的地
}}
struct qnode
;typedef
struct qnode* queue;
queue createqueue
(int maxsize)
bool isfull
(queue q)
void
addq
(queue q,
int px,
int py,
int bx,
int by)
bool isempty
(queue q)
elementtype deleteq
(queue q)
bool bound
(int x,
int y)
bfs()函式中涉及的變數本文都有
int moves[4]
[2]=
,,,}
;//右 左 上 下
int
bfs(
)else
//人沒有推箱子則走空地 }}
return-1
;}
C 廣度優先搜尋
廣度優先搜尋是一種用於圖的查詢演算法,它主要解決兩個問題 1.從節點s到節點e有路徑嗎?2.從節點s到節點e的所有路線中,哪條最短?廣度優先搜尋的執行過程中,搜尋範圍從起點開始逐漸向外延伸,即先檢查一度關係,再檢查二度關係.所謂一度關係 我的朋友和我就是一度關係.所謂二度關係 我的朋友的朋友和我就是...
搜尋 廣度優先搜尋
廣度優先搜尋一層一層地進行遍歷,每層遍歷都是以上一層遍歷的結果作為起點,遍歷乙個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。class solution,int shortestpathbinarymatrix vectorint grid length return 1 cl...
廣度優先搜尋
include include include include using namespace std struct node 圖頂點結構定義 typedef struct node graph 圖形的結構新型態 struct node head 9 圖形頂點陣列 int visited 9 遍歷標...