編集:適切な解決策:
void add(Student s)
{
if(root == null)
root = new TreeNode(s);
else
insert(root,s);
}
void insert(TreeNode tn, Student s)
{
if(tn.sVal.compareTo(s) > 0)
{
if(tn.left != null)
insert(tn.left, s);
else
{
tn.left = new TreeNode(s);
tn.left.parent = tn;
}
}
else if(tn.sVal.compareTo(s) < 0)
{
if(tn.right != null)
insert(tn.right, s);
else
{
tn.right = new TreeNode(s);
tn.right.parent = tn;
}
}
balance(tn);
}
私は以下を使用してバイナリツリーに挿入しようとしています:
void add(Student s)
{
insert(root,s);
}
private void insert(TreeNode t, Student s)
{
if(t == null)
t = new TreeNode(s);
else if(t.sVal.compareTo(s) > 0)
insert(t.right, s);
else if(t.sVal.compareTo(s) < 0)
insert(t.left,s);
}
しかし、木は空のままで、理由がわかりません。漠然としているのは嫌いですが、ロジックにエラーが見つかりません。私は何が欠けていますか?