8得票1回答
Union+Find算法(不相交集合)的应用

问题陈述: 方程的格式为 A / B = k,其中 A 和 B 是用字符串表示的变量,k 是一个实数(浮点数)。 给定一些查询问题,返回答案。如果答案不存在,则返回 -1.0。 例如:给定 a / b = 2.0, b / c = 3.0. 查询问题为:a / c = ?, b / a...

8得票5回答
实施Kruskall算法时如何测试电路

我正在尝试编写一个能够寻找最小生成树的程序。但是,这个算法遇到了一个问题,就是如何测试电路。在Java中,最好的方法是什么呢。 好的,这是我的代码: import java.io.*; import java.util.*; public class JungleRoads { ...

7得票2回答
在C++中实现等价关系(使用boost::disjoint_sets)

假设您有许多元素,需要跟踪它们之间的等价关系。如果元素A等价于元素B,则它等价于所有其他元素,这些元素与B等价。 我正在寻找一种有效的数据结构来编码此信息。应该可以通过与现有元素的等价性动态添加新元素,并且从该信息中应该能够有效地计算新元素等价于哪些元素。 例如,考虑以下元素[0,1,2,...

7得票4回答
如何在联通组件标记中使用不相交集合?

我在使用连通组件标记中遇到了使用不连通集合的困难。我已经查看了许多示例,还查看了此问题,其中Bo Tian提供了一个非常好的C++链接列表作为不连通集合的实现。我已经在程序中实现了连接组件标记(标签是简单的整数),但我很难解决不连通集合中标签之间的等价关系。 有人能帮我解决这个问题吗?也许可...

7得票1回答
在线性时间内打印不相交集合数据结构中的节点

我正在尝试完成Cormen等人的算法导论中与不相交集数据结构有关的练习: 假设我们希望添加操作PRINT-SET(x),它接收一个节点x并以任意顺序打印x集合中的所有成员。展示如何仅向不相交集森林中的每个节点添加单个属性,以便PRINT-SET(x)需要时间线性地执行x集合的成员数量,并且其...