zoukankan      html  css  js  c++  java
  • dfs 邻接矩阵 无向无权 递归方法

      出处LINK  

     

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

    输出:索引值

     1 #include <iostream>
     2 #include <climits>
     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<<row<<'	';
    12     visited[row]=1;
    13     for(int i=0; i<n; 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<n; i++){
    27         if(!visited[i]){
    28             cout<<"part "<<partnum++<<" :"<<endl;
    29             dfs(i);
    30             cout<<endl<<endl;
    31         }
    32     }
    33     cout<<"---travel all nodes over !"<<endl;
    34 }
    35 
    36 void init(){
    37     for(int i=0; i<n; i++)
    38         visited[i]=0;
    39     for(int i=0; i<n; i++)
    40         for(int j=0; j<n; 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<n; i++)
    48         mat[i][i]=0;
    49 }
    50 
    51 int main()
    52 {
    53     init();
    54     travelallnodes();
    55 
    56     dfs(5);
    57     return 0;
    58 }

     

  • 相关阅读:
    java浅谈
    学习心得 六 修改
    学习心得 六
    学习心得 五
    学习心得 四
    学习java心得 三
    学习java心得 二
    学习java心得 一
    学习前言
    课程进展
  • 原文地址:https://www.cnblogs.com/guoyujiang/p/11967196.html
Copyright © 2011-2022 走看看