js實現廣度優先搜尋和深度優先搜尋

2021-08-31 18:16:00 字數 492 閱讀 2341

最近在學習演算法,看了**演算法,但是感覺寫的太簡單,理論比較多,**實現比較和例子比較少,看完後,又接著看了《啊哈!演算法》,這個感覺例子比較多,也比較適合我這種演算法入門的讀者。

書上的例子一一打了一遍,因為作者是用c寫的,而我是沒接觸過c,用了自己比較熟悉的js把例子打了一遍。用廣搜寫了貪吃蛇自動吃果實,只能吃100多個,自認為還能完善,於是等完善後在放在部落格上面吧。

這裡先寫寫用dfs(深搜) 和 bfs(廣搜)演算法實現 炸彈人的統計哪個點能消滅的怪物最多的演算法

這裡是地圖,要求從3,3位置走,在那個地方消滅的怪物最多

這裡是用bfs 完成目標的演算法 ,基本上都有注釋

這裡是深搜實現的方法

答案應該是下面的

深度優先搜尋和廣度優先搜尋

深度優先的思想是先記住當前的起點,然後選定乙個方向一條道走到黑,若失敗則回到起點再選定另外乙個方向走到黑。廣度優先的思想是記住當前的起點,然後選定各個方向的相鄰點作為新的起點,再繼續。可以看出,深度優先和廣度優先都需要記住當前的起點,不同的是深度優先每次只需要記住乙個方向的相鄰點,廣度優先則要記住所...

廣度優先搜尋和深度優先搜尋

dbf深度優先搜尋,最經典的方法,可以使用遞迴來實現。結構體定義 typedef char vertextype typedef int edgetype define maxvex 100 define infinite 65535 typedef struct mgraph 測試函式如下 mgr...

深度優先搜尋和廣度優先搜尋

定義 圖 graph 是由頂點的有窮非空集合和頂點之間邊的集合組成,通常表示為 g v,e 其中,g表示乙個圖,v是圖g中頂點的集合,e是圖g中邊的集合.簡單點的說 圖由節點和邊組成。乙個節點可能與眾多節點直接相連,這些節點被稱為鄰居。如二叉樹就為乙個簡單的圖 廣度優先搜尋演算法 breadth f...