我正在尝试建立自己的树类,但一直感到困惑。基本上,我正在尝试制作加权树。我做了以下节点类:

 import java.util.*;

public class subdivNode {

private int nodevalue;
private int nodeID;
private List<subdivNode> childnodes;

public subdivNode(int value, int id){
    nodevalue = value;
    nodeID = id;
}

public int getValue(){
    return nodevalue;
}

public int getId(){
    return nodeID;
}

public void addChild(subdivNode child){
    childnodes.add(child);
}

public int getNumChildren(){
    return childnodes.size();
}

public subdivNode getChild(int pos){    //return's i'th child
    return childnodes.get(pos);
}
}


到目前为止,这是我的树类的骨架:

public class subdivTree {

private subdivNode rootnode;

public subdivTree(){
    rootnode = new subdivNode(0,0);
}

public void addNode(int parent, int value){

}

public int getNodeValue(int node){

    return 0;
}

public int getNumChildren(int node){
    return 0;
}


}


除此之外,我不知道

编辑:抱歉。我的问题应该是我将如何在subdivTree中实现addnode方法。最终目标是创建一个算法,该算法在树中搜索任何两个节点之间的路径,从而获得最大值(将节点之间所有节点的值相加)。

最佳答案

在使用addNode之前,请告诉我们getNodeValue(int node)如何工作。

您有一个rootNode,您要使用该“ node”值调用哪种方法?

我不确定,但我认为您的界面已损坏。我认为您对按位置获取和按ID获取的概念感到困惑。

画出您期望的数据结构图。

10-08 01:18