優雅實現深度遍歷DFS與廣度遍歷BFS

2022-03-08 10:52:21 字數 1057 閱讀 1518

深度遍歷dfs&廣度遍歷bfs

深度遍歷dfs:

深度優先搜尋屬於圖演算法的一種,英文縮寫為dfs即depth first search.其過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止。

廣度遍歷bfs:
廣度遍歷是最簡便的圖的搜尋演算法之一,以廣度優先,橫向逐層地遍歷,直到沒有下一層為止。

資料來源:

搜尋其中的name值

const data = [

] },

] },

] },

],},

] },

] },

] },],}

]

深度遍歷dfs
/*

* 深度遍歷

* */

function dfs(arr)

return result;

}

廣度遍歷bfs
/*

* 思路:遞迴方式

* 因為是按層進行遞迴,所以遇到children並不能馬上進行,應該先定義陣列收集好下層的children,當前層遍歷完後再遞迴下一層

* 例如:在遍歷[a, a2]時,收集陣列的下層[b,c,d,b2,c2,d2],依次類推

* */

function bfs(arr)

if(cachelevel.length > 0) result.push(...bfs(cachelevel));

return result;

}

廣度遍歷bfs【佇列思維實現-優】
/*

* 佇列思維實現:佇列方式

* 思路:建立乙個佇列,不斷讀取第乙個佇列,發現下層有要遍歷的則新增進佇列中,然後每遍歷完自身就去掉,知道佇列中把所有的都遍歷完。

* */

function queuebfs(arr)

return result

}

簡單才是真愛

深度優先遍歷與廣度優先遍歷

深度優先遍歷 1 深度優先遍歷的遞迴定義 圖的深度優先遍歷類似於樹的前序遍歷。採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋。這種搜尋方法稱為深度優先搜尋 depth first search 相應地,用此方法遍歷圖就很自然地稱之為圖的深度優先遍歷 2.基本實現思想 1 訪問頂點v 2 從v的未被...

深度優先遍歷與廣度優先遍歷

深度優先遍歷 1 深度優先遍歷的遞迴定義 圖的深度優先遍歷類似於樹的前序遍歷。採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋。這種搜尋方法稱為深度優先搜尋 depth first search 相應地,用此方法遍歷圖就很自然地稱之為圖的深度優先遍歷 2.基本實現思想 1 訪問頂點v 2 從v的未被...

深度優先遍歷與廣度優先遍歷

深度優先遍歷 1 深度優先遍歷的遞迴定義 圖的深度優先遍歷類似於樹的前序遍歷。採用的搜尋方法的特點是盡可能先對縱深方向進行搜尋。這種搜尋方法稱為深度優先搜尋 depth first search 相應地,用此方法遍歷圖就很自然地稱之為圖的深度優先遍歷 2.基本實現思想 1 訪問頂點v 2 從v的未被...