我试图递归插入方法到我的常规树我该怎么办?

时间:2015-05-10 22:44:46

标签: java recursion methods insert tree

我的插入代码只在尝试添加少于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>();
}

0 个答案:

没有答案