二叉排序树中的 compareTo 方法



我正在尝试使用一种方法来计算BST中大于x的元素数:如果树包含{3, 7, 8, -4, 6},并且x = 6,则方法应该return 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));
}

你需要通过指定类型约束让 Java 编译器知道T有一个compareTo方法:

class MyBst<T extends Comparable<? super T>> {
... //    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
... //         Add this constraint
}

compareTo是来自Comparable接口的方法。

要使用它,您应该定义您的类是实现Comparable接口

private <T extends Comparable<T>> int(BSTNode<T> base, T x) {
} 

相关内容

  • 没有找到相关文章

最新更新