2013-04-04 79 views
2

我试图从头开始构建一个简单的哈希表。哈希表我目前使用了一个链表。哈希函数将密钥对对象的哈希值取模为数组索引的大小。这一切都很好,但我想知道是否可以通过使用数组列表动态扩展我的数组(一旦它开始填满)(告诉我为什么这不是一个好主意,如果你这么认为)。很显然,散列函数会被破坏,因为我们使用数组长度来查找索引。什么是一个很好的哈希函数来使用它,这将允许我的链表的数组扩展,同时不影响哈希函数的完整性?使用哈希表的数组列表

+3

一旦您达到某个填充因子并重新哈希所有元素,您通常会将底层数组的大小加倍。 – BrokenGlass 2013-04-04 14:13:51

+0

正是我在找什么,谢谢! – 2013-04-04 14:19:22

回答

3

如果我正确理解你的问题,你将不得不在扩展桶数组后重新哈希所有元素。可以通过遍历旧哈希表的内容并将它们插入新扩展的哈希表中来完成。

+0

很棒,正是我一直在寻找的。 – 2013-04-04 14:19:05