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个项目的二叉树,但只有一个显示在错误的一面。
答案 0 :(得分:1)
我发现问题是插入的第二部分是左侧而不是右侧树。
if(pChar[Stelle]=='-')
{
Mybaum rTree=this.getRightTree();
Stelle++;
rTree.insert(pBuchstabe,pChar,Stelle);
this.baum.**setLeftTree**(rTree.baum);
}