【发布时间】:2017-12-10 11:20:54
【问题描述】:
我找到了一个创建 make 和 find 方法的教程
public void makeSet(long data) {
Node node = new Node();
node.data = data;
node.parent = node;
node.rank = 0;
map.put(data, node);
}
private Node findSet(Node node) {
Node parent = node.parent;
if (parent == node) {
return parent;
}
node.parent = findSet(node.parent);
return node.parent;
}
这里是完整的code 链接到 这是Kruskal Algorithm的链接
我很困惑为什么他们要返回一个其父节点本身而不是不同节点的节点,以及在等级设置为 0 时实施联合时等级的用途。我尝试查找其他 Kruskal 算法代码和解释,但很少有关于实施的资料。
【问题讨论】:
标签: java algorithm kruskals-algorithm disjoint-sets