如何解决C程序:实施深度优先搜索DFS:打印整个访问顺序以及不同组的断开连接的组件
这是我的代码。
我正在使用C程序来实现深度优先搜索(DFS) 输入将是一个矩阵,输出将是
- 打印整个访问顺序
- 打印不同组的断开连接的组件
我的代码能够打印第一组连接的顶点,但不能打印其余的顶点。 此代码也无法打印整个访问顺序。 感谢提供的任何帮助。
#include<stdio.h>
#define maxV 10
int count;
int G[maxV][maxV];
int visit[maxV];
int n; //number of vertices
int s; //starting point
void dfs(int v){
count=count+1;
int i;
visit[v]=count;
printf("%d->",v);
for (i=1;i<n+1;i++){
if (G[v][i]!=0 && visit[i]==0){
dfs(i);
}
}
}
void main(){
int i;
int j;
int count=0;
printf("Enter number of vertices: ");
scanf("%d",&n);
for (i=1;i<n+1;i++)
{
visit[i]=0;
}
printf("\nEnter adjecency matrix of the graph:");
for(i=1;i<n+1;i++)
for(j=1;j<n+1;j++)
scanf("%d",&G[i][j]);
printf("Enter starting vertix:");
scanf("%d",&s);
dfs(s);
for (i=1;i<n+1;i++){
if (visit[i])
count=count+1;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。