我想将一个小精灵类型(名称+数字)添加到二叉搜索树中。这是我的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