我有一个问题,使用btree在字典中存储100.000个单词的数据(一个单词包括一个头和定义),我不知道如何用一个哈希函数将100.000个单词哈希到100.000个不同的密钥,我的老师给出一些暗示只是哈希3字的第一个字符,但我不能想象什么会对某些字有多于3个字符。请帮帮我T_T
答案 0 :(得分:0)
这里的想法可能是哈希冲突很好:你计算一个哈希(例如通过添加前三个字符的ASCCI值;但在现实世界中几乎不符合“哈希”)并比较哈希值。如果它们相等,则进行(更昂贵的)字符串比较。像:
int compare(Node *left, Node *right) {
if (left->hash == right->hash) {
return stringCompare(left, right);
}
if (left->hash < right->hash) {
return -1;
} else {
return 1;
}
}