在二叉搜索树中插入方法

时间:2015-04-11 11:57:24

标签: java binary-search-tree

public void insert(Buchstabe pBuchstabe,char[] pChar,int pStelle)
{
    if(pBuchstabe==null)
        return;
    int Stelle = pStelle;
    if(baum.isEmpty())
    {
        baum=new BinaryTree(pBuchstabe);
    }
    else {
        if(pStelle < pChar.length)
        {
            if(pChar[Stelle] == '.')
            {
                Mybaum lTree=this.getLeftTree();
                Stelle++;
                lTree.insert(pBuchstabe,pChar,Stelle);
                this.baum.setLeftTree(lTree.baum);
            }
            else
            if(pChar[Stelle]=='-')
            {
                Mybaum rTree=this.getRightTree();
                Stelle++;
                rTree.insert(pBuchstabe,pChar,Stelle);
                this.baum.setLeftTree(rTree.baum);
            }
        }
        else
            return;
    }
}

所以这是我的插入方法。问题是它只添加了我传递给BinaryTree的最后一个Buchstabe。所以它会得到一个Buchstabe,一个带有一些&#39;的char数组。或者&#39; - &#39;其中的代码和一个整数,当在开头调用insert merhod时,该整数从0开始。没有真正的错误,但我得到了这个输出:http://puu.sh/h9I4E/beee4f30a9.png。 它应该创建一个包含26个项目的二叉树,但只有一个显示在错误的一面。

1 个答案:

答案 0 :(得分:1)

我发现问题是插入的第二部分是左侧而不是右侧树。

 if(pChar[Stelle]=='-')
        {
            Mybaum rTree=this.getRightTree();
            Stelle++;
            rTree.insert(pBuchstabe,pChar,Stelle);
            this.baum.**setLeftTree**(rTree.baum);
        }