我需要一种方法将一组顶点拆分成单独的组件,只使用边缘列表。
例如,如果程序显示输入
2,3
1,5
3,4
4,2
我需要将1和5放在与2,3,4不同的单独结构中,因为它们没有连接。
将所有顶点放入邻接列表是否是一个好主意,如果是,那将决定它们如何分裂?
还要记住,顶点数和边数都是已知的,但是可变的。
答案 0 :(得分:0)
如果我理解正确,那么你真的可以使用像深度优先搜索这样的东西。 当你到某一点时,你用索引0标记它(例如)。 当你似乎走过连接结构中的所有点(你的搜索完成) 你开始迭代点数组以查看是否有一些未标记的点(带0),所以开始在该点上运行深度优先搜索并用1标记所有点... 所以你将能够分析点数组,并看到其中一些标记为0,一些标记为1,一些标记为2 ...所以如果你有0,1,2那么你有3个独立的结构。
希望它有用。