使用Btree存储字典数据?

时间:2011-10-28 14:25:05

标签: b-tree

我有一个问题,使用btree在字典中存储100.000个单词的数据(一个单词包括一个头和定义),我不知道如何用一个哈希函数将100.000个单词哈希到100.000个不同的密钥,我的老师给出一些暗示只是哈希3字的第一个字符,但我不能想象什么会对某些字有多于3个字符。请帮帮我T_T

1 个答案:

答案 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;
    }
}