метод сравнения в двоичном отсортированном дереве - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь создать метод, который подсчитывает количество элементов в 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));
}

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

compareTo - метод из интерфейса Comparable.

Чтобы использовать это, вы должны определить, что ваш класс реализует Comparable interface

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

} 
0 голосов
/ 07 мая 2018

Вы должны сообщить компилятору Java, что T имеет метод compareTo, указав ограничение типа:

class MyBst<T extends Comparable<? super T>> {
    ... //    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ... //         Add this constraint
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...