c - 使用 C 中的 DFS 方法,我怎样才能使它没有用户输入
问题描述
对于我的代码,我正在检查图形是否使用 DFS 连接。截至目前,它使用用户输入。我希望它不使用二维数组(矩阵)的用户输入。我会对这部分isConnected()
(见下文)做些什么来修复它,这样我就可以使用全局二维数组 b 而不是全局二维数组 a
printf("\nEnter adjacency matrix : \n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
这是我到目前为止所拥有的
int a[20][20],reach[20],n;
int b[4][4] = { {0,1,1,1},{0,0,1,0},{0,0,0,0},{0,0,0,1}};
void dfs(int v){
int i;
reach[v]=1;
for(i=1;i<=n;i++)
if(a[v][i]&&!reach[i]){
printf("\n%d->%d",v,i);
dfs(i);
}
}
void isConnected(){
int i,j,count=0;
printf("\n no of vertices is 4 ");
// scanf("%d",&n);
int n = 4;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
reach[i]=0;
a[i][j]=0;
}
printf("\nEnter adjacency matrix : \n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
dfs(1);
for(i=1;i<=n;i++)
if(reach[i])
count++;
if(count==n)
printf("\nGraph is connected.");
else
printf("\nGraph is disconnected.");
}
为了节省一些混乱,我取出了 main ,它只是调用该函数来检查它是否已连接
解决方案
推荐阅读
- javascript - 相对于服务器根目录的 HREF
- python - 我可以将列用作行并保留现有行吗?
- html - 如何使悬停延迟:之后
- python - 如何动态查找最大组大小
- solana - 索拉纳租金豁免
- python - 未使用循环导入和异步/等待定义的全局变量
- wordpress - Wordpress 和 Cloudflare 404 重定向不起作用
- javascript - 使用 removeFile 时 Uppy 不会从 DOM 中删除文件
- dart - 有没有更好的方法在飞镖语言中使用 for 循环读取字符串中的值
- pytorch - PyTorch autograd hooks 调试最佳实践