我在使函数在哈希表中搜索给定键值时遇到问题。参见下面的代码。
//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之后的代码中,我得到以下错误:
错误:“->”的基本操作数具有非指针类型“ LinkedList”
现在我知道我无法用'。'代替'->'。就像我对其他任何非指针一样,因为代码无法识别这对类对象意味着什么。 我想做的是,如果LinkedList(hashList)的当前值等于key(正在搜索的值),则返回true。否则,移至LinkedList的下一个值,并让for循环重新开始。我应该如何重写此代码才能使其正常工作?
感谢您的帮助!