Node* searchLHash(LHashTable H, KeyType key, int &c)
{
// 根据给定的要查找的关键字来计算这个关键字在哈希顺序表中应该存储的位置
int location = H.hash(key,H.size);
// 定义一个指向结点类型数据的指针,让它指向这个单链表的第一个结点
Node * node = H.rcd[location];
// 定义一个整型变量来记录冲突的次数
int conflictCount = 0;
// 查找这个结点
while (node != NULL && node->r.key != key) {
conflictCount++;
node = node->next;
}
// 如果执行到这里时,node非空,就说明找到了这个关键字
// 这时候需要返回node所指向的结点和冲突次数
if (node != NULL) {
c = conflictCount;
return node;
}
// 反之,就说明找不到这个结点,返回NULL
else {
return NULL;
}
}
05-18
8331