我想將一個小精靈類型(名稱+數字)添加到二叉搜索樹中。這是我的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'傳統上是代數中的一個數值。就個人而言,我會將方法簽名定義爲「公共無效插入(口袋妖怪口袋妖怪)'。 – VGR