我正在尝试建立自己的树类,但一直感到困惑。基本上,我正在尝试制作加权树。我做了以下节点类:
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获取的概念感到困惑。
画出您期望的数据结构图。