无向图 邻接矩阵dfs(最简单)

Posted guoyujiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无向图 邻接矩阵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 }

 

 

 

以上是关于无向图 邻接矩阵dfs(最简单)的主要内容,如果未能解决你的问题,请参考以下文章

用c语言编程 1创建图的邻接矩阵和邻接表 2验证图的深度优先、广度优先遍历算法 3验证最短路径

算法导论—无向图的遍历(BFS+DFS,MATLAB)

2023数据结构考研复习-图

2023数据结构考研复习-图

数据结构 图的基本操作要C语言的完整代码!!

求算法,用邻接矩阵和邻接表创建一个图,实现深度和广度搜索,菜单形式,c语言的代码。无向无权的图。