图的两种遍历算法——BFS和DFS
生活随笔
收集整理的這篇文章主要介紹了
图的两种遍历算法——BFS和DFS
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、BFS,也稱廣度優(yōu)先搜索,和二叉樹的層次遍歷算法類似
//BFS bool visited[MaxVertexNum]; void BFSTraverse(Graph G){for(i=0;i<G.vexnum;i++)visited[i]=FALSE;InitQueue(Q);for(i=0;i<G.vexnum;i++)if(!visited[i])BFS(G,i); } void BFS(Graph G,int v){visit(v);visited[v]=TRUE;EnQueue(Q,v);while(!isEmpty(Q)){DeQueue(Q,v);for(w=FirstNeighbor(G,v);w>=0;w=NextNeighbor(G,v,w))if(!visited[w]){visit(w);visited[w]=TRUE;EnQueue(Q,w);}} }二、DFS,也稱深度優(yōu)先搜索,類似于二叉樹的先序遍歷
//DFS bool visited[MaxVertexNum]; void DFSTraverse(Graph G){for(v=0;v<G.vexnum;v++)visited[v]=FALSE;for(v=0;v<G.vexnum;v++)if(!visited[v])DFS(G,v); } 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);} }?
總結(jié)
以上是生活随笔為你收集整理的图的两种遍历算法——BFS和DFS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图的邻接矩阵存储和邻接表存储定义方法
- 下一篇: 求最短路径——BFS、Dijkstra、