1
在动态图上维护连接的组件信息的最有效的算法和数据结构是什么?
假设我有一个无向的有限稀疏图,并且需要能够有效地运行以下查询: 一世小号çø Ñ Ñ Ê Ç 吨ë d(N1个,N2)IsConnected(N1,N2)IsConnected(N_1, N_2) - 如果在和之间存在路径,则返回,否则返回N 1 N 2 FŤTTñ1个N1N_1ñ2N2N_2FFF Cø Ñ Ñ Ê Ç 吨ë dñØ dÈ 小号(Ñ)ConnectedNodes(N)ConnectedNodes(N) -返回从可访问的节点集ñNN 通过预先计算图形的连接组件,可以轻松完成此操作。这两个查询都可以在时间中运行。O (1 )O(1)O(1) 如果还需要能够任意添加边 -那么我可以将组件存储在不相交的数据结构中。每当添加一条边时,如果它连接了不同组件中的两个节点,我将合并这些组件。这会将成本增加到,将成本增加到和(也可能是)。一ddËdGÈ (Ñ1个,N2)AddEdge(N1,N2)AddEdge(N_1, N_2)甲d d é d 克ë ø (我Ñ v Ë ř 小号Ë 甲Ç ķ é ř 米一个Ñ Ñ (| Ñ …