哈希函数和哈希表中的存储

时间:2016-09-14 11:33:05

标签: c++ hash hashtable hash-function

我正在学习编程,在学校书中它说明了给定键x,哈希表A []和哈希函数h()键x它存储在A [h(x)-1]位置(使用C ++实现) )。 然而,使用函数h(x)= xmodM作为散列函数,其中M是散列表的长度,我不知道存储具有mod 0的键的位置。 例如,如果M = 10且x = 60,那么我应该存储键值? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

这取决于h()的定义方式,如果它接受以1开头的值,那么这就是您在此公式中-1 h(x)-1的原因:0。 c ++中的数组从0开始编制索引。

如果您在c ++中计算60除以10的提示,那么您将获得值60 % 10 = 0({{1}})。在这种情况下,减去-1是没有意义的。