0

我需要一种方法将一组顶点拆分为单独的组件,只使用边列表。

例如,如果程序带有输入

2,3

1,5

3,4

4,2

我需要将 1 和 5 放置在与 2、3、4 不同的结构中,因为它们没有连接。

将所有顶点放入邻接列表中是否是一个好主意,如果是这样,什么将决定它们如何分割?

还要记住,顶点的数量和边的数量都是已知的,但是是可变的。

4

1 回答 1

0

如果我对你的理解正确,那么你真的可以使用深度优先搜索之类的东西。当你到达某个点时,你用索引 0 标记它(例如)。当您似乎遍历了连接结构中的所有点(您的搜索已完成)时,您开始迭代点数组以查看是否有未标记的点(带有 0),因此开始对其运行深度优先搜索点并用 1 标记所有点...这样您就可以分析点数组并看到其中一些标记为 0,有些是 1,有些标记为 2...所以如果您有 0, 1,2 那么你有 3 个独立的结构。

希望它有用。

于 2013-05-28T06:27:43.827 回答