关于连通性的图论理念?

时间:2016-04-02 19:36:39

标签: java algorithm graph-theory connectivity

您有一个 n 节点(编号为1-n)和 m 边缘的图表。您逐个删除所有节点,并在每一步检查图形是否完全连接(通过打印"已连接"或不是)。给出了要删除的节点的顺序。

例如,

n = 4且 m = 3 给出的边缘是:1 - 2,2 - 3,3 - 4。 删除顺序为:3,4,1,2

节点编号为1-n,因此本例中的节点为1,2,3,4。

最初,图表已连接,因此您打印出来:

联网

首先删除节点3.现在图表已断开,因为节点4是唯一的。

断开

然后删除节点4.现在,图形仅由连接的节点1和2组成。

联网

然后删除节点1.图形仍被视为已连接;只有一个节点。

联网

然后删除节点2.没有任何内容。

示例代码会有所帮助,最好是java或c ++。我尝试使用BFS和DFS,但它们太慢了。最有效的方法是什么?

1 个答案:

答案 0 :(得分:0)

尝试以相反的顺序工作。

逐个添加边缘并使用disjoint set data structure查找集合何时连接。