我有一个类分配,我需要将目标排序到二叉树节点中,在给定根的情况下,我需要将其与根进行比较,如果目标小于该值,则将其作为左子对象根,如果目标大于根的值,则将该目标作为正确的子代。
我必须使用给定的方法标头和参数,并且我已经这样写了代码:
public static boolean find(TreeNode t, Comparable x)
{
TreeNode p = t;
if(t == null)
return false;
while(p != null)
{
if(p.getValue() == x)
return true;
else if(p.getValue() < x)
p = p.getLeft();
else
p = p.getRight();
}
return false;
}
返回此错误:
BinarySearchTree.java:109:错误:二进制运算符'
我也尝试过compareTo方法,方法是尝试类似]的方法>
if(p.getValue().compareTo(x) == 0)
return true;
返回下面的错误:
BinarySearchTree.java:107:错误:找不到符号if(p.getValue()。compareTo(x))^符号:方法compareTo(Comparable)位置:类对象
如何解决此错误?我尝试搜索此问题,但这并不是特别有用。
更新-TreeNode类:
class TreeNode
{
private Object value;
private TreeNode left, right;
public TreeNode(Object initValue)
{
value = initValue;
left = null;
right = null;
}
public TreeNode(Object initValue, TreeNode initLeft, TreeNode initRight)
{
value = initValue;
left = initLeft;
right = initRight;
}
public Object getValue()
{
return value;
}
public TreeNode getLeft()
{
return left;
}
public TreeNode getRight()
{
return right;
}
public void setValue(Object theNewValue)
{
value = theNewValue;
}
public void setLeft(TreeNode theNewLeft)
{
left = theNewLeft;
}
public void setRight(TreeNode theNewRight)
{
right = theNewRight;
}
}
我有一个类分配,需要将目标排序到二叉树节点中,在给定根的情况下,我需要将其与根进行比较,如果目标小于。,则将目标作为左子对象。 。
好像x
是您的Comparable
界面。您应该在此参数上调用compareTo
方法,然后将结果与0
比较。可比Javadoc有一些用法示例。 compareTo
函数返回:
负整数,零或正整数,因为此对象小于,等于或大于指定的对象。