繁体   English   中英

Java路径压缩

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM