ポケモンタイプ(名前+番号)をバイナリ検索ツリーに追加します。ここに私のBinarySearchClassがあります。演算子がクラスタイプに無効です
public void insert(Pokemon n) { // n is data/key
Node newNode = new Node(n);
if (root == null) { // empty tree
root = newNode;
} else {
Node current = root;
Node parent = null;
boolean flag = true;
while (flag) {
parent = current;
if (n < current.data) {
current = current.left;
if (current == null) {
parent.left = newNode;
flag = false;
}
} // if(n < current.data)
else {
current = current.right;
if (current == null) {
parent.right = newNode;
flag = false;
} // current == null}
} // else}
} // while(flag)
} // root != null
}
エラーはn < current.dataにあります。私はそれを作ることができないので、Kadabra 64やBulbsaur 1などのポケモンの数を比較するだけでなく、ポケモンの種類全体を使用します。ポケモンのコンストラクタクラスでgetNumber()を使用する必要がありますか? このtestDriverコード使用:
BinarySearchTree T = new BinarySearchTree();
for (int i = 0; i < userNumber; i++){
T.insert(poke[i]);
}
「<」は数字の比較に使用される演算子です。ポケモンは数字ではありません。おそらくn.getNumber()
YESS !!どうもありがとうございます!それは私の愚かだった。 –
これは意味のある変数名が良い考えである理由です。 'n'は伝統的に代数では数値です。個人的には、メソッドシグネチャを 'public void insert(Pokemon pokemon)'と定義しました。 – VGR