我的插入代码只在尝试添加少于10个节点时才正确但如果我尝试添加超过10个节点,则会出现堆栈溢出错误。 我试图让每个节点最多有10个孩子。 这就是我想出来的。
public class GeneralTree {
public GTN root;
int max=10;
public GeneralTree(GTN root){
this.root = root;
}
public GeneralTree(){}
public void insert(GTN node){
if(root== null){
root = node;
}
else
insertR(root,node);
}
private void insertR(GTN Root,GTN node){
if(root.children.isEmpty() || root.children.size()<max){
root.children.add(node);
}
else {
for(int k = 0;k<max;k++){
insertR(root.children.get(k),node);
}
}
}
我的节点类。
public class GTN {
public GTN parent;
public Comparable<String> key;
public ArrayList<GTN> children;
public GTN(Comparable key){
this.parent = null;
this.key=key;
this.children = new ArrayList<GTN>();
}