问题描述
这是我的代码。
我正在使用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 (将#修改为@)