给定一条边,找到最小生成树(如果存在)

Given an edge, find a minimum spanning tree if exist

我有一个带权无向图 G 和一条边 e。我需要找到包含 e 的最小生成树,当且仅当它存在时。

我可以用两种不同的方式解释你的问题:

  1. 找到所有最小生成树。如果任何包含 e,return 它。否则 return null.
  2. 使用Kruskals算法,在做任何事情之前将e添加到生成树中。构建剩余的树。如果你能创建一个最小跨度return它。

有两个潜在的失败点:

一个。该图包含未通过边连接的组件(不存在生成树)
B.最小生成树不包含e

方法 (1) 在条件 A 和 B 下失败。方法 (2) 仅在条件 A 下失败。