c - 如何使用 c 找到 DFS 中的组件数量?
问题描述
好吧,我遍历了 DFS,但现在我找不到组件。有什么办法可以解决。
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
printf("Enter the number of array position a[%d][%d] = ",i,j);
scanf("%d",&ar[i][j]);
}
}
DFS(v);
printf("\n");
for (i=1;i<=n;i++){
if(reach[i]==1){
count++;
}
}
printf("Number of Components: %d",count);
return 0;
}
解决方案
这是该任务的算法:
Components = 0;
For every vertex index i:
if marks[i] == 0 then
++Components
DFS(i)
DFS(v):
marks[v] = Components
for all vertices j adjacent to v:
if marks[j] == 0:
DFS(j)
组件存储了个数,components
表示marks[n]
顶点n
所属的组件号。
推荐阅读
- single-sign-on - OneLogin SSO - 单个 SAML 应用程序上的多个 ACS(消费者)URL
- php - 使用类似 codeigniter 显示大量数据
- firebase - Firebase 和 Firestore 的多租户设置是否可行?
- python - 离开后如何清屏?基维
- python - 在numpy N维数组中水平堆叠相同的索引
- perl - 在格式良好的 HTML 中使用 Perl 和 Mojo::DOM 定位 HTML 中的单个元素
- batch-file - Autohotkey 脚本不会将剪贴板粘贴到 CMD 窗口中
- python - 如何使用 Python ask sdk 检查和获取 Alexa 插槽值
- php - Laravel 5.5 - 防止在模型更新期间使用附加属性
- python - 如何将 youtube 频道 cookie 与 selenium webbdriver 一起使用?[python]