您需要在哈希表中存储一些数字。碰撞由封闭的散列方法处理(没有 链接)。该表有4个桶,哈希函数是KmodN,其中N是桶的数量。 存储项目的命令如下所示,并按给定的顺序执行。 数字8将存储在哪个桶(索引)中?
hashtable.add(2)
hashtable.add(4)
hashtable.add(6)
hashtable.add(8)
我希望它很简单,因为我认为我会选择0?
答案 0 :(得分:0)
封闭散列方法表示只有1个项目/存储桶。没有链接完成。因此,hashtable.add(2)
会使广告符position 0
占用。
现在hashtable.add(8)
也会哈希到存储桶position 0
。这是碰撞。
在封闭散列中,有一个rehash策略,我们尝试其他散列函数给出的其他位置,如果找到空白位置,我们填充该位置的项目,如果我们找不到任何空白位置,我们声明哈希表已满。
因此,如果您的rehash函数哈希到position 3
,则该项将转到该桶,否则它将声明哈希表已满。但除非你陈述你的改革策略,否则没有什么可以确定的。