[英]Java Path compression
我必须创建一个方法查找,该方法将使用本地Set来收集对象和根。 然后,我将压缩对象e(在参数中)并将roost作为其父对象。 然后,我将引用返回到根。 自导入以来,我就可以使用Graph,Map和set类。 但是,如何称呼根的父级? 我可以放mapParent.get(e)
吗?
编辑该方法的功能是使节点指向根,我想使用Set将参数和对象根之间的所有对象放在一起。 然后,我将使用路径压缩。 然后,我必须返回对该对象的引用。 因此,我想知道如何调用对象的父级以某种方式引用父级。 所以这就是我得到的:
public T find (T obj){
//Set<E> s = new HashSet<E>(sizeOfRoot.size()); // i don't know how I would use the set yet
T p = null;
if (map.get(obj).equals(obj)) // I was trying to get the parent of e
return obj;
else{
p = find(map.get(obj)); // recursively call the method to path compress
}
return p; // return the reference to the node
}
您能帮我指引正确的方向吗?
正确的方法是将父级与每个节点一起存储。 如果由于某种原因无法执行此操作,则应使用Map而不是Set。
您可以在代码中的某处通过调用以下命令来填充此地图
mapParents.put(obj, parent)
然后,您可以通过调用
parent=mapParents.get(obj)
所有这些,假设我正确理解您的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.