У меня проблема с получением работающей функции, которая ищет в хеш-таблице заданное значение ключа. См. Код ниже.
//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 начать сначала. Как мне переписать этот код, чтобы он заработал?
Спасибо за любую помощь!