[英]Union-Find using Hashmap in Java
我正在研究联合查找算法,使用以下内容:
HashMap<E,E> parent = new HashMap<E,E>();
我写了这个方法来找到一个家庭的最后一个成员
public E find(E src)
{
while (parent.get(src) != null)
src = parent.get(src);
return src;
}
它有效,但问题是我将使用大集合处理这个哈希图; 所以我想修改 find 方法,使其将 find(src) 设置为 src 的“父亲”。 但我不能按原样那样做,我有直觉,原因是:如果我尝试在方法的开头做一个副本
E copy = src;
然后在方法的最后
parent.put(copy,src);
它不起作用,因为它实际上并没有进行“正确”的复制。 我试过克隆父母,但它也不起作用。
谢谢大家,圣诞快乐!
也许这个?
public E find(E src)
{
E mysrc= src;
while (parent.get(mysrc) != null)
mysrc= parent.get(mysrc);
parent.put(mysrc,src);
return mysrc;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.