2016-02-19 83 views
2

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

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的算法。

回答

1

很简单:你有一个节点列表。只需从该列表中删除由单个DFS运行的所有节点,并从该列表的任意节点重新开始。重复此操作,直到列表为空,并且遍历所有树。

+0

哇,这是非常简单,很好。我会给它一个镜头并回报。 – RCountZero

+0

工作很好。非常感谢你。 – RCountZero

+0

很高兴帮助你:) – Paul