gpt4 book ai didi

c - 搜索不适用于哈希表

转载 作者:行者123 更新时间:2023-11-30 20:14:30 24 4
gpt4 key购买 nike

我不明白为什么我的搜索代码在哈希表中不起作用。我已经尝试在每一行插入 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;
}

最佳答案

name 是一个 char* 指针。myNode 是一个struct node* 指针。

它们不能相等,这意味着具有相同的内存地址。

myNode == name 始终为 false。

如果你想比较指针所指向的内容,可以使用string.h函数strcmp()来代替。请参阅:http://www.cplusplus.com/reference/cstring/strcmp/

但请确保两个指针都指向实际的字符串(以 null 结尾)。对于 name 来说没问题,但对于 myNode 可能不太好。

关于c - 搜索不适用于哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com