哈希表冲突,如何获得正确的值?

时间:2011-05-29 12:38:57

标签: c# c++ algorithm hashtable

例如,'a'(键)和'b'(键)的散列都指向位置10,我使用'+1'方法来处理碰撞,所以'b'的位置现在是11。

所以,如果我尝试获取b(key),则hash函数返回10,以及如何告诉hash函数返回11。

2 个答案:

答案 0 :(得分:2)

您必须检查存储的密钥并验证它是否匹配。否则“使用'+1'方法”并再试一次。

答案 1 :(得分:1)

您需要将(10)处的键与您要搜索的值进行比较,如果它们不相同,则转到下一个位置,在这种情况下为(11)并重复。散列表通常要求可以测试存储的值是否相等。

然而,这种散列问题有很多问题 - 你最好存储一个列表表。