dfs 邻接矩阵 无向无权 递归方法

  出处LINK  

 

 dfs 邻接矩阵 无向无权 递归方法_第1张图片

 

 

改写:去除sum变量;新增结点6,实现遍历全图的算法

输出:索引值

dfs 邻接矩阵 无向无权 递归方法_第2张图片

 

 1 #include 
 2 #include 
 3 using namespace std;
 4 #define MAX 10
 5 
 6 int mat[MAX][MAX];
 7 int visited[MAX];
 8 int n=6;
 9 
10 void dfs(int row){
11     cout<'\t';
12     visited[row]=1;
13     for(int i=0; i)
14     {
15         if(mat[row][i]==1 && !visited[i]){
16             dfs(i);
17         }
18     }
19     return;
20 }
21 
22 void travelallnodes()
23 {
24     cout<<"travel all nodes :"<<endl;
25     int partnum=1;
26     for(int i=0; i){
27         if(!visited[i]){
28             cout<<"part "<" :"<<endl;
29             dfs(i);
30             cout<endl;
31         }
32     }
33     cout<<"---travel all nodes over !"<<endl;
34 }
35 
36 void init(){
37     for(int i=0; i)
38         visited[i]=0;
39     for(int i=0; i)
40         for(int j=0; j)
41             mat[i][j]=INT_MAX;
42     mat[0][1]=1,mat[0][2]=1,mat[0][4]=1;
43     mat[1][0]=1,mat[1][3]=1;
44     mat[2][0]=1,mat[2][4]=1;
45     mat[3][1]=1;
46     mat[4][0]=1,mat[4][2]=1;
47     for(int i=0; i)
48         mat[i][i]=0;
49 }
50 
51 int main()
52 {
53     init();
54     travelallnodes();
55 
56     dfs(5);
57     return 0;
58 }

 

 

 

你可能感兴趣的:(dfs 邻接矩阵 无向无权 递归方法)