私は次のようなメソッドを記述しようとしています: BSTを指定すると、キー値が与えられた場合、キーよりも小さい値を持つノードの数を返すBSTsmallcountという再帰関数を作成します。あなたの関数はBSTのできるだけ少ないノードにアクセスする必要があります。バイナリ検索ツリー小カウント演習
これは私が持っているものです。
public int BSTsmallcount(BinNode root, int key)
{
int count = 0;
if (root.right < key)
{
count += BSTsmallcount(root.left, key);
}
if (root.left < key)
{
count += BSTsmallcount(root.right, key);
}
return count;
}
あなたは二項演算子を使用することはできませんので、しかし、これは正しくありません。どうすればこの問題を解決できますか?
バイナリ演算子の制限を明確にしてください。あなたは本当に算術演算、ブール演算子、または建設演算子なしでこれを行うことになっていますか? '<'を使わなくてもこれを攻撃するのは変です。 – Prune
私にはわかりませんが、これは私にこのエラーをもたらします:バイナリ演算子 '<'のオペランドタイプが正しくありません – Harshi
何が原因でしょうか?コンパイラ?このエラーは、バイナリ演算子 '<'を使用しないことを示すものではありません。あなたが間違って '<'を使用していて、悪いパラメータを与えていると言われています。おそらくroot.rightとroot.leftは期待される型intではなくBinNode型であるからでしょう。 – ILMTitan