算法 - 查找图中的所有连接器

时间:2017-12-04 16:05:32

标签: algorithm graph

定义:在无向图中,顶点v是连接器,如果至少有两个其他顶点x和w,x和w之间的每条路径都经过v。

我正在使用邻接链表来存储我的图表。

所以我的第一个想法是“呃,如果它是顶点的唯一邻居,那么顶点就是连接器。”

虽然这有效但我现在意识到,在其他情况下,顶点是连接器,即使它没有那种质量。

我提出了一个解决方案,我会检查顶点邻居的每条路径,看看我是否可以到达其他每个顶点,因为你可能会想到这将是非常耗时的。

我一直试图想出一个更快的算法,但我无法这样做。谁能给我一个暗示我应该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

假设您的图表已连接。如果删除连接器顶点,则必须断开图形。然后,在线性时间内使用dfs或bfs计算图形的组件数。如果组件数量发生变化,则表示删除的顶点或节点是连接器。

您可以为每个顶点运行此算法。该算法的时间复杂度为O(n^2)