1
我发现,创造的品牌和方法,找到这样克鲁斯卡算法实行
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时实现Union时的等级是什么。我试过找到其他的Kruskal算法代码和解释,但有很多很少有消息来源于实施。
https://en.wikipedia.org/wiki/Disjoint-set_data_structure –
我错过了那个链接谢谢 – Zac