再帰を使用してノードを正しく追加できました。
カウントを維持しようとしているときに問題が発生しました。ノードを追加する前に、再帰メソッドが false (複数回) を返します。最後にfalseを返さなくてもうまくいくようですが、Javaはそれが好きではありません。
どうすればこれを回避できますか?
ここに(疑似的な)コードがあります:
セットクラスから:
if(root.add(value))
count++
return true
return false
ノードクラスから:
public boolean add(item value) {
if(this == value) //check if it already exists
return false;
} else {
if(this.left < value)
if(this.left != null)
this.left.add(value)
else
this.left = new Node(value)
return true
if(this.right > value)
if(this.right != null)
this.right.add(value)
else
this.right = new Node(value)
return true
}
return false
}