如何在c中使用双散列和重新散列时获取散列表的索引?

时间:2015-05-02 10:15:35

标签: c hash hashtable hash-function double-hashing

我写了一个程序来创建用户用户名和加密密码的哈希表。当插入哈希表时,我使用双哈希函数来获取密钥。我有两个哈希函数。那就是在调用第一个哈希函数时我得到了一个索引。如果它不包含任何元素,我插入到该索引。如果它包含数据,我调用第二个哈希函数来获取索引。在所有成功插入之后,我存储到一个文件中。然后,我使用rehashing(大小翻倍)来增加我的哈希表大小,超过用户来。

我的逻辑是当我加载服务器时,它将文件中的所有数据插入到哈希表中。但我有一些疑问。我使用用户名作为获取索引的关键。当我将所有数据从文件插入到哈希表时,如何找到索引? (混淆是关于双重散列。)插入后,我想用现有用户名验证客户端用户名。如何获取特定用户数据? (我没有将任何密钥存储到文件中。)那么我怎样才能获得该密钥? (这里的问题也是双重哈希。)

我想用双哈希来做这件事。我知道在使用单个哈希函数时获取详细信息(将用户名作为密钥来检索索引)。但我想避免使用双重散列冲突。有什么建议吗?

0 个答案:

没有答案