Я хочу добавить тип pokemon (имя + номер) в двоичное дерево поиска. Вот мой 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
}
Ошибки я получаю в п < current.data. Я не могу это сделать, поэтому он просто сравнивает количество Pokemon, таких как Kadabra 64 или Bulbsaur 1, но также использует весь тип Pokemon. Должен ли я использовать getNumber() в классе конструктора Pokemon? Используя этот 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