我正在尝试创建自己的树类,但仍然非常困惑。基本上我正在尝试制作加权树。我做了以下节点类:
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方法。最终目标是创建一个alogrithim,在树中搜索任意两个节点之间的路径,以便获得最大值(添加节点之间所有值的值)。答案 0 :(得分:2)
在使用addNode之前,请告诉我们getNodeValue(int node)将如何工作。
你有一个rootNode,你用那个“node”值调用哪种方法?
我不确定,但我认为您的界面已损坏。我认为你的位置和通过Id得到的概念很混乱。
绘制您期望的数据结构图片。