您的位置:首页 > 其它

图的深搜与广搜

2015-08-12 17:28 204 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int a[100][100],p[100];
int d[100],n;
void dfs(int x){
int i,j,k;
p[x]=1;
printf("%d ",x);
for(i=1;i<=n;i++)
if(a[x][i] && !p[i])
dfs(i);
}
int main(){
int i,j,k,k1,m;
int x,y,e;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
dfs(1);
puts("");
int f=0,l=1;
memset(p,0,sizeof(p));
d[1]=1;p[1]=1;
while(f<l){
f++;
k=d[f];
printf("%d ",k);
for(i=1;i<=n;i++)
if(a[k][i] && !p[i]){
d[++l]=i;
p[i]=1;
}
}
puts("");
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: