Ich möchte einen Pokemon-Typ (Name + Nummer) zu einem binären Suchbaum hinzufügen. Hier ist meine BinarySearchClass.Operator ungültig für Klassenarten
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
}
Der Fehler, den ich bekommen, ist an der n < current.data. Ich kann es nicht schaffen, also vergleicht es nur die Anzahl der Pokémon, wie Kadabra 64 oder Bulbsaur 1, sondern auch den gesamten Pokémon-Typ. Muss ich getNumber() in meiner Pokemon-Konstruktorklasse verwenden? Mit diesem Testfahrer Code:
BinarySearchTree T = new BinarySearchTree();
for (int i = 0; i < userNumber; i++){
T.insert(poke[i]);
}
'<' ist ein Operator verwendet, um Zahlen zu vergleichen. Ein Pokémon ist keine Nummer. Vielleicht möchten Sie n.getNumber()
YES !! Ich danke dir sehr! Das war dumm von mir. –
Aus diesem Grund sind sinnvolle Variablennamen eine gute Idee. 'n' ist traditionell ein numerischer Wert in der Algebra. Persönlich hätte ich die Methodensignatur als 'public void insert (Pokemon Pokemon) 'definiert. – VGR