图的存储方式
1.邻接矩阵
邻接矩阵的二维数组表示第i个点到第j个点的权值为dis[i][j]。
实现容易,但时空复杂度都比较大,时间复杂度为O(n*n),空间复杂度为O(n*n)。
适合稠密图。
下为代码:
1 #include<cstdio> 2 #define N 4200 3 int vis[N],dis[N][N],n,m,a,b,c; 4 int dfs(int x){ 5 vis[x]=1; 6 for(int i=1;i<=n;++i) 7 if(dis[x][i]==1&&!vis[i]) 8 dfs(i); 9 } 10 int main(){ 11 scanf("%d%d",&n,&m); 12 for(int i=1;i<=m;++i){ 13 scanf("%d%d%d",&a,&b,&c); 14 dis[a][b]=c; 15 dis[b][a]=c; 16 } 17 dfs(1); 18 return 0; 19 }