廣搜優先搜尋之迷宮問題

2021-08-26 20:46:55 字數 659 閱讀 5071

廣度優先搜尋(breadth first serch)

以迷宮問題為例:

定義乙個二維陣列:

int maze[5][5] = ,,,};//分別表示路徑下,上,左,右

struct nodeque[50];//模擬佇列,5*5的迷宮

int mark[5][5];//用來標記走過的位置

/*head就是上乙個節點的標記,tail就是緊跟這的那個*/

int head=0;

int tail=0;

int map[5][5];

void bfs(int startx,int starty,int endx,int endy);

void print(node path);

int main()

}bfs(0,0,4,4);//迷宮從(0,0)到(4,4)

print(que[tail-1]);//因為再bfs當中最後tail多了乙個所以要減去

return 0;

}void bfs(int startx,int starty,int endx, int endy)

head++;

}}void print(node path)

else

}

迷宮問題 廣搜

定義乙個二維陣列 int maze 5 5 queue 26 int head 0,tail 0,a 5 5 book 5 5 void function int tail 引數是隊尾 else function queue tail f 如果隊尾的父節點不是0 就將該父節點作為新的隊尾繼續呼叫 這...

迷宮問題(廣搜與深搜)

定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...

NYOJ 迷宮尋寶(一) 搜尋 廣搜

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這個門所...