0

「java.lang.string をノードにキャストできません」という例外が発生します。提供された toString メソッドを使用して localRoot を文字列に変換し、それらを比較することを考えましたが、BST をナビゲートするために必要な「より大きい」または「より小さい」という概念はありません...

 int computeResult = ((Node<E>)o).compareTo(localRoot);

ここで、o は Object 型です localRoot は Node 型です compareTo メソッドは Node を取ります

4

2 に答える 2

0

おもしろいことに、私は今週末、Java バイナリ ツリーの実装に取り​​組んでいました。あなたがそれについてどう思うか見てください。

于 2009-10-19T00:22:16.327 に答える
0

String には、大なり小なりの概念を持つ compareTo メソッドがあります。

したがって、そのコード行は次のように記述できます。

int computeResult = o.toString().compareTo(localRoot.toString());

java.lang.string の Javadoc から:

public int compareTo(String anotherString)

定義: インターフェース Comparable 内の compareTo

パラメータ: anotherString - 比較する文字列。

戻り値: 引数文字列がこの文字列と等しい場合は値 0。この文字列が文字列引数より辞書的に小さい場合は 0 より小さい値。この文字列が文字列引数よりも辞書的に大きい場合は、0 より大きい値。

于 2009-10-19T00:34:31.840 に答える