Java で独自の二分探索木を作成しようとしています。私はすべてのメソッドを作成しました。現在、メソッドをテストするプログラムを作成しようとしています。
ただし、「挿入」メソッドを実装しようとすると、コンパイルされず、理由がわかりません。
public class lab05driver {
public static void main(String[] args) {
BST q = new BST();
int a = 5;
String b = "jed";
double c = 1.8;
char d = 'r';
boolean e = false;
int f = 35;
String g = "yay";
double h = 2.1;
char i = 'i';
boolean j = true;
Integer k = 5;
q.insert(k);
}}
私のBSTクラスは次のようになります。
public class BST implements myBST {
private myTreeNode root;
public BST() {
}
public void insert(Comparable x) {
if(root == null) {
root = new myTreeNode();
root.data = x;
} else if ( !lookup(x) ) {
root.insert(x);
}
}
...more code...
}
そして、myBST は次のようになります。
public interface myBST {
public void insert(Comparable x);
public void delete(Comparable x);
public boolean lookup(Comparable x);
public void printPreOrder();
public void printInOrder();
public void printPostOrder();
}
最後に、myTreeNode は次のようになります。
public class myTreeNode {
public myTreeNode() {
}
public Comparable data ;
public myTreeNode leftchild;
public myTreeNode rightchild;
public myTreeNode parent;
public void insert(Comparable d) {
//if less than
//does left exist? if it doesnt, make it, give it d
//if it exists call insertrecursive on rightchild
if(d.compareTo(data) <= 0) {
if(leftchild != null) {
leftchild.insert(d);
} else {
leftchild = new myTreeNode();
leftchild.data = d;
leftchild.parent = this;
}
} else {
if(rightchild != null) {
rightchild.insert(d);
} else {
rightchild = new myTreeNode();
rightchild.data = d;
rightchild.parent = this;
}
}
}
...more code...
}
lab05driver の「q.insert(k)」でエラーがスローされます。どんな助け/提案も大歓迎です...
~~~~~ 編集: 申し訳ありませんが、間違ってコピーしました... main メソッドがあり、整数 k は整数です... コマンドラインを取得するエラーは: 警告: [チェックされていない] 比較へのチェックされていない呼び出し(T ) raw タイプ java.lang.Comparable のメンバーとして