0
私はデータと右と左のノードの文字列値で実装された通常のバイナリ検索ツリーを持っています。ツリーは正常に動作しますが、私はrankOf関数に問題があります。私は再帰を使用してノードを見つけ、要素が存在するときにメソッドが成功するが、存在しない値が機能しないときに、これを助けるためにブール値を設定する方法を見つけることができない。ここでは、コードです:Java BST再帰変数の設定
private int rankOf(String s, Node n){
if (n != null){
//check root
if (s.compareTo(n.value) == 0){
if (n.left != null){
return size(n.left);
}
return 0;
}
// only worry about left tree, easy
if (s.compareTo(n.value) < 0){
return rankOf(s, n.left);
} else {
// must count entire left tree plus root node
return rankOf(s, n.right) + size(n.left) + 1;
}
}
//null or not found
return 0;
}
ルートは、私は要素がそう何かがそこに行くが、これを処理する方法がわからないはずですツリーにある知っている値と同じです。
「存在しない値が機能しない場合」は例外をスローしますか? plsはあなたのツリーを投稿します – CodeIsLife
'' size''メソッドは何を返しますか?また、成功/失敗の場合にメソッドが返すべきものは何ですか? –
@SchiduLuca Sizeは、渡されたノードのサブツリー上のノードの量を返します。失敗した場合は-1を返すことができます。 –