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 }

 

posted @ 2015-06-03 16:09  lxdonge  阅读(170)  评论(0)    收藏  举报