Java 二叉排序树中的compareTo方法
我正在尝试一种方法来计算BST中大于x的元素数:如果树包含Java 二叉排序树中的compareTo方法,java,compare,binary-tree,compareto,Java,Compare,Binary Tree,Compareto,我正在尝试一种方法来计算BST中大于x的元素数:如果树包含{3,7,8,-4,6},并且x=6,则该方法应返回2 目前,我得到了一个找不到符号的错误,我的比较。。。这是我的代码: public int countGreater(T x) { BSTNode<T> base = root; if(base == null) return 0; int greater = great(base, x); return greater; } private
{3,7,8,-4,6}
,并且x=6
,则该方法应返回2
目前,我得到了一个找不到符号的错误,我的比较。。。这是我的代码:
public int countGreater(T x)
{
BSTNode<T> base = root;
if(base == null) return 0;
int greater = great(base, x);
return greater;
}
private int great(BSTNode<T> base, T x)
{
int numG = 0;
Iterator<T> getGreatest = getIterator(Postorder);
while(getGreatest.hasNext())
{
if(compare(getGreatest.next(), x) > 0)
{
numG++;
}
}
return numG;
}
public int compare(T a, T b)
{
return (a.compareTo(b));
}
public int countmorer(tx)
{
节点基=根;
if(base==null)返回0;
更大的整数=大(基数x);
回报更大;
}
私有int-great(基本节点,T x)
{
int numG=0;
迭代器getGreatest=getIterator(后序);
while(getgrest.hasNext())
{
if(比较(getgrest.next(),x)>0)
{
numG++;
}
}
返回numG;
}
公共整数比较(TA,TB)
{
回报(a.与(b)相比);
}
您需要通过指定类型约束,让Java编译器知道T
有一个compareTo
方法:
class MyBst<T extends Comparable<? super T>> {
... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
... // Add this constraint
}
class MyBst您需要通过指定类型约束,让Java编译器知道T
有一个compareTo
方法:
class MyBst<T extends Comparable<? super T>> {
... // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
... // Add this constraint
}
class MyBstcompareTo
是来自Comparable
接口的方法
要使用它,您应该定义您的类是implementComparable
接口
private <T extends Comparable<T>> int(BSTNode<T> base, T x) {
}
private int(基本节点,T x){
}
compareTo
是来自Comparable
界面的一种方法
要使用它,您应该定义您的类是implementComparable
接口
private <T extends Comparable<T>> int(BSTNode<T> base, T x) {
}
private int(基本节点,T x){
}
如何定义T
?您的T
是否定义为与自身可比?如何定义T
?您的T
是否定义为与自身可比?