哈希函数和哈希存储 table

Hash Functions and storage in hash table

我正在学习编程,在教科书中它指出给定键 x,哈希表 A[] 和哈希函数 h() 键 x 它存储在 A[h(x)-1] 位置(与C++ 实现)。 但是,将函数 h(x)=xmodM 用作哈希函数,其中 M 是哈希表的长度,我不知道存储 mod 0 的键的位置。 例如,如果 M=10 和 x=60,我应该在哪里存储键值? 提前致谢!

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

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