資料結構之深度優先遍歷

2021-07-27 21:14:49 字數 837 閱讀 9587

深度優先遍歷:

從根節點開始遍歷,從左到右依次遍歷,遍歷時應先將一條分支上遍歷完才進行下一輪遍歷。

如圖:

遍歷順序為:1 2 4 3 5

程式如下:

#include int book[101];    //用於標記是否已遍歷過,未遍歷則為值為0

int sum; //每標記一次加 1 ,直到sum等於需要遍歷的頂點個數n為止

int n,e[101][101]; //陣列e作為兩頂點之間的標記,為1則兩者之間有連線,0則代表兩者之間無連線。

void dfs(int cur)

for(i=1;i<=n;i++) //從根節點開始,依次遍歷

}}int main()

}//值為1表示兩者之間有連線,屬於同乙個分支,可繼續遍歷

for(i=1;i<=m;i++)

book[1]=1;

dfs(1); //呼叫遍歷函式

getchar();

getchar();

return 0;

}

程式執行結果:

請輸入元素個數n,以及連線次數m:

5 4 

1 21 3

1 52 4

遍歷輸出結果:1 2 4 3 5 

a,b輸入順序可忽略。

注:學習筆記引用於紀磊 《啊哈!演算法》

資料結構 基於深度優先遍歷演算法的應用

基於深度優先遍歷演算法的應用。假設圖g採用鄰接矩陣儲存 1 判斷圖g中從頂點u到v是否存在簡單路徑 2 輸出圖g中從頂點u到v的一條簡單路徑 假設至少存在一條路徑 3 輸出從圖g中從頂點u到v的所有簡單路徑 假設至少存在一條路徑 4 輸出從圖g中從頂點u到v的長度為s的所有簡單路徑 5 求圖中通過某...

資料結構 深度優先搜尋

dfs適合此類題目 給定初始狀態跟目標狀態,要求判斷從初始狀態到目標狀態是否有解。輸入資料 若是遞迴資料結構,如單鏈表,二叉樹,集合,則百分百可以可以深搜 若是非遞迴資料結構,如一維陣列,二維陣列,字串,圖,則概念小一些.狀態轉移圖 樹 or 圖 求解目標 必須要走到最深 例如,對於樹,必須走到葉子...

樹之深度優先遍歷

直接貼 只需要修改中間列印的位置,放在最前面就是先序遍歷,放在中間,就是中序遍歷,放在後面就是後序遍歷 貼 public class main public static void initnode node head public static void printf node node clas...