【发布时间】:2014-11-21 10:10:04
【问题描述】:
我无法弄清楚为什么我的搜索代码在哈希表中不起作用。我已经尝试在每一行插入 printf 只是为了查看代码流,这是正确的,但我似乎仍然无法获得正确的输出。该程序按字母顺序将单词保存在哈希表上,并使用链表。因此,如果我搜索以“A”开头的单词,它必须返回 Key:1 等等。我会很感激你能提供的任何帮助:)
void searchInHash(int key, char *name) {
int hashIndex = key, flag = 0;
struct node *myNode;
myNode = hashTable[hashIndex].head;
if (!myNode) {
printf("Search element unavailable in hash table\n");
return;
}
while (myNode != NULL) {
if (myNode == name) {
printf("Key: %d\n", hashIndex);
flag = 1;
break;
}
myNode = myNode->next;
}
if (!flag)
printf("Search element unavailable in hash table\n");
return;
}
【问题讨论】:
-
f (myNode == name) {:myNode的类型是struct node*。name的类型是char *。
标签: c data-structures hashtable