c++ - 哈希表中的冲突处理

标签 c++ hashtable

我正在尝试创建一个哈希表以确定需要插入词法(字符串)的索引。哈希函数和表工作正常,但我面临的问题是回文和具有相同字符集的字符串。如果表中有一个字符串,让我们说“nab”,如果用户输入另一个字符串“ban”,那么新字符串将替换表中的字符串。

这是我目前正在使用的示例代码。

String lexime;
int token;  //This determines the index in the table
String hashTable[20];
cin >> lexime;
token=hash(lexime);
hashTable[token]=lexime;

int function hash(String lex){
    int token=0;
    int length=lex.size();
    for (int i=0;i<length;i++){
        char temp=lex[i];
        token+=(int)temp;
    }
    return token%20;
}

最佳答案

通常每个哈希表条目都是一个链表,所以你的碰撞都在列表中......哈希是为了加快搜索速度,只搜索碰撞列表。

关于c++ - 哈希表中的冲突处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237205/

相关文章:

Perl 打印哈希数组的数组?

c++ - 为什么我的计算出错了?

C++ 复制构造函数调用对象切片

c++ - 无论发射器速度如何,粒子流的长度都应相同

c++ - 函数不允许比较字符串中的单个字符 - C++

c++ - 递归斐波那契函数(带负数)

python - 键对于 python 字典来说不是唯一的!

algorithm - 散列时预期的空槽数

c++ - Map C++ 的哈希函数

c - 赋值错误C