DFS深度优先遍历
利用递归实现深度优先遍历图
1 #include<iostream> 2 using namespace std; 3 int visit[5]={0}; 4 5 typedef struct { 6 char vexs[5]; 7 int AdjMatrix[5][5]; 8 int vexnum; 9 }Graph; 10 11 Graph g={ 12 {'a','b','c','d','e'}, 13 { 14 0,1,0,1,0, 15 1,0,1,0,1, 16 0,1,0,1,1, 17 1,0,1,0,0, 18 0,1,1,0,0 19 } , 20 5 21 }; 22 int DFS(Graph *g,int i) 23 { 24 int j=0; 25 cout<<g->vexs[i]<<" "; 26 visit[i]=1; 27 for(j=0;j<g->vexnum;j++) 28 { 29 if((g->AdjMatrix[i][j]==1)&&(visit[j]==0)) 30 DFS(g,j); 31 } 32 return 0; 33 } 34 int main() 35 { 36 DFS(&g,0); 37 //cout<<visit[3]; 38 return 0; 39 }

浙公网安备 33010602011771号