私はこのプログラムに数日間取り組んでおり、BinarySearchTree クラスに挿入や削除などのいくつかの主要なメソッドを実装しました。挿入は正常に機能しているように見えましたが、削除しようとするとエラーが発生し続けました。そのため、コードをいじった後、compareTo メソッドをテストしたいと思いました。2 つの新しいノードを作成して比較しようとすると、次のエラーが発生します。
スレッド「メイン」の例外 java.lang.ClassCastException: TreeNode を java.lang.Integer にキャストできません java.lang.Integer.compareTo(Unknown Source) で TreeNode.compareTo(TreeNode.java:16) で BinarySearchTree.myComparision( BinarySearchTree.java:177) の main.main(main.java:14)
ノードを作成するための私のクラスは次のとおりです。
public class TreeNode<T> implements Comparable
{
protected TreeNode<T> left, right;
protected Object element;
public TreeNode(Object obj)
{
element=obj;
left=null;
right=null;
}
public int compareTo(Object node)
{
return ((Comparable) this.element).compareTo(node);
}
}
私はcompareToメソッドをすべて間違っていますか? 整数と文字列を扱えるツリーを作りたい(もちろん別々に)