c++ - 森林的 DFS 算法

标签 c++ algorithm graph tree depth-first-search

我目前正在尝试实现一种能够在森林上工作的 DFS 算法。我有一个表示 MST 的邻接矩阵。可以在下面找到更短的版本。

2   19
17  36
19  20
20  21
36  52
52  67
61  80
62  61
63  62
67  68
67  84
80  102
80  81
81  82
83  63

起初我尝试使用简单的 DFS,但正如预期的那样,当组件不再连接时它失败了。主要问题是这只是我需要处理的众多邻接矩阵之一。我阅读了有关在森林中为每棵树放置虚拟根节点的信息,但这不起作用,因为邻接矩阵表示图像中的超像素并根据所描绘的内容而变化。因此,我需要帮助找到(如果存在)一种能够检测不连续性并为每棵树执行 DFS 的算法。

最佳答案

非常简单:您有一个节点列表。只需从该列表中删除单个 DFS 运行遍历的所有节点,然后从列表的任意节点重新开始。重复此操作,直到列表为空并且您已经遍历了所有树。

关于c++ - 森林的 DFS 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515380/

相关文章:

c++ - 使用 NetBeans 在 C++ 静态库项目中进行测试

c# - 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序

algorithm - 给定允许接触多边形的坐标,计算圆是否适合多边形(三角形/五边形)的内部?

c - 使用可用的 binaryrandom(返回 0 或 1)函数生成整数随机数

java - 我怎样才能制作如图所示的图表?

caching - 像 LinkedIn 这样的网站如何在每个人的名字旁边有效地显示第一/第二/第三级关系?

c++ - 在 C++ 中使用运算符重载添加复数

c++ - Astyle - 如何将不带大括号的条件格式化为 1TBS

c - 在 C 中对链表进行排序

node.js - 如何在 Node 中将图形渲染为图像