Проблема с программой, которая выполняет поиск в хэш-таблице с использованием связанных списков - PullRequest
0 голосов
/ 06 ноября 2019

У меня проблема с получением работающей функции, которая ищет в хеш-таблице заданное значение ключа. См. Код ниже.

      //hashtable constructor
      Hashing(int tableSize) {
        TABLE_SIZE = tableSize;
        hashTable = new LinkedList[TABLE_SIZE];
      }

      //search algorithm
      bool search(int key) { 
        int hashVal = getHashValue(key); //returns (37 * val + 61) % TABLE_SIZE
        LinkedList hashList = hashTable[hashVal];
        for(int i=0; i<hashList.getSize(); i++){
            if(hashList->value == key)
                return true;
            else
                hashList = hashList->next;
        }
        return false;
    }

Проблема возникает в операторе if и в коде, следующем за else, где я получаю следующую ошибку:

error: базовый операнд '-> 'имеет тип не указателя' LinkedList '

Теперь я знаю, что не могу заменить' -> 'на'. 'как я сделал бы для любого другого не указателя, потому что код не распознает, что это значит для объекта класса. То, что я пытаюсь сделать, это вернуть true, если текущее значение LinkedList (hashList) равно ключу, искомое значение. В противном случае перейдите к следующему значению LinkedList и дайте циклу for начать сначала. Как мне переписать этот код, чтобы он заработал?

Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...