【发布时间】:2019-04-21 08:45:07
【问题描述】:
我正在用 java 处理树。我目前正在研究检索和插入方法。 方法如下:
public void insert(E item) {
if(item <= node.item){
if(node.left == null){
node.left = new TreeNode<E>(item);
}
else{
insert(node.left.item);
}
}
else{
if(node.right == null){
node.right = new TreeNode<E>(item);
}
else{
insert(node.right.item);
}
}
root.item = item;
}
public E retrieve(E item) {
if(item == node.item){
return item;
}
else if(item <= node.item){
if(node.left == null){
return null;
}
else{
return retrieve(node.left.item);
}
} else{
if(node.right == null){
return null;
}
else {
return retrieve(node.right.item);
}
}
}
在上面的代码中,if 语句:
if(item <= node.item)
...给我以下错误:
java: bad operand types for binary operator '<='
first type: E
second type: E
我有点困惑,因为当我用 compareTo() 切换操作数时,它让我知道结果是布尔值,但我们期待的是 int。我不太确定如何比较它们。或者更确切地说,用什么来比较它们。 求救!
谢谢你, T
【问题讨论】:
-
Java 没有运算符重载。
E必须是Comparable(或者您需要Comparator<E>)。你是如何定义E的? -
item的类型是E...E是什么? -
我不太确定,因为我的老师缺乏提供作业信息。我猜这只是我们老师决定的一种类型: public class BinarySearchTree
> extends BinaryTree
标签: java error-handling compiler-errors