1.首先舉個實例來講明連通性,看下圖:算法
圖G1搜索
上圖爲非連通圖,對上圖的鏈接表進行深度優先搜索遍歷,3次調用DFS過程,分別從頂點A,D,G出發,獲得的頂點訪問序列爲:遍歷
A L M J B F C D E G I K Him
上面的3個頂點集和全部依附於這些頂點的邊,便構成了非連通圖的3個連通份量。img
2.設E(G)爲連通圖G中全部邊的集合,則從圖中任一頂點出發遍歷圖時,一定將E(G)分紅兩個集合T(G)和B(G),其中T(G)是遍歷圖過程當中歷經的邊的集合;B(G)是剩餘邊的集合。顯然T(G)和圖中全部的頂點一塊兒構成連通圖G的極小連通子圖,又成爲連通圖的一顆生成樹,而且稱由深度優先搜索獲得的爲深度優先生成樹;由廣度優先搜索獲得的爲廣度優先生成樹。集合
對於非連通圖,每一個連通份量中的頂點集,和遍歷走過的邊一塊兒構成若干顆生成樹,這些連通份量的生成樹組成非連通圖的生成樹林。block
上圖G1的深度優先生成樹林爲:生成
3.深度優先生成森林的算法實例