您的位置:首页 > 其它

邻接矩阵图的dfs和bfs

2015-06-14 17:23 351 查看
int G[maxn][maxn];
int n; //点数
int m; //边数
int vis[maxn];
void init()
{
memset(G,0,sizeof(G));
memset(vis,0,sizeof(vis));
for(int i=0; i<m; i++)
{
int u,v;
scanf("%d%d",&u,&v);
G[u][v] = 1;
}
}

void dfs(int u)
{
vis[u] = 1;
printf("%d",u);
for(int i=1; i<=n; i++)
if(G[u][i] && !vis[i])
dfs(i);
}

void bfs(int u)
{
queue <int> Q;
vis[u] = 1;
Q.push(u);
while(!Q.empty())
{
int v = Q.front();
Q.pop();
printf("%d ",v);
for(int i=1; i<=n; i++)
if(G[v][i] && !vis[i])
{
vis[i] = 1;
Q.push(i);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: