数据结构 DFS

来源:互联网 发布:怎么关闭百度推荐 知乎 编辑:程序博客网 时间:2024/06/01 10:42
//邻接矩阵的深度优先遍历
#include<stdio.h>
#include<string.h>
int a[100][100];
int b[100];
void DFS(int k,int n)
{
printf("%d",k);
b[k]=1;
int i,j;
for(i=1;i<=n;i++)
if(a[k][i]&&!b[k])
DFS(i,n);
}
int main()
{
int n,m;
int i,j,k,t;
while(1)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d%d",&n,&m);
for(t=1;t<=m;t++)
{
scanf("%d%d%d",&i,&j,&k);
a[i][j]=a[j][i]=k;
}
for(i=1;i<=n;i++)
{
if(!b[i])
DFS(i,n);
}

printf("\n");
}
return 0;
0 0