数据结构之图的遍历:深度优先遍历(DFS)
生活随笔
收集整理的這篇文章主要介紹了
数据结构之图的遍历:深度优先遍历(DFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
圖的遍歷:深度優先遍歷
- 思維導圖:
- 深度優先遍歷的原理:
- 深度優先遍歷的代碼實現:
- 深度優先遍歷的性能:
- 深度優先生成樹:
- 遍歷與連通性的關系:
思維導圖:
深度優先遍歷的原理:
ps:
實現方法是遞歸+數組或者棧+數組
鄰接矩陣法的DFS,BFS唯一,鄰接表法不唯一
深度優先遍歷的代碼實現:
bool visited[MAX_TRUE_SIZE]; void DFSTraverse(Graph G){for(int i=0;i<G.vexnum;++i)visited[i] = false;for(int i=0;i<G.vexnum;++i)if(!visited[i])DFS(G,i); }void DFS(Graph G,int v){visit(v);visited[v] = true;for(w = FirstNeighbor(G,v);w>=0;w=NextNeighbor(G,v,w))if(!visited[w])DFS(G,w); }深度優先遍歷的性能:
深度優先生成樹:
遍歷與連通性的關系:
1、遍歷函數的次數與連通分量的關系(只在無向圖成立,有向圖不成立,見2)
ps: 在無向圖中,廣度優先和深度優先算法中,都有一個每個節點都調用一次深度或廣度優先遍歷算法的循環,若從1開始,調用一次可遍歷到1234567節點,然后234567不調用遍歷算法;到節點9時,再次調用算法可遍歷到89,然后9不調用遍歷算法。所以,有幾個連通分量,就會調用幾次遍歷算法
2、在有向圖中,一次遍歷算法可以遍歷到所有節點,不能說明此有向圖強連通
3、
總結
以上是生活随笔為你收集整理的数据结构之图的遍历:深度优先遍历(DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正确理解HTML,XHTML页面的头部d
- 下一篇: 数据结构之查找算法:散列查找