向暗夜致敬:【高手请进】跪求数据结构难题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 07:06:58
设有两个三列函数H1(K)=K mod 13和H2(K)=K mod 11+1,三列表为T[0…12],用二次散列法解决冲突。函数H1用来计算散列地址,当发生冲突时,H2作为计算下一个探测地址增量。假定某一时刻散列表的状态为:
0 1 2 3 4 5 6 7 8 9 10 11 12
80 55 34

下一个被插入的关键码为42,其插入位置应是
A)0 B)1 C)3 D)4
请解释一下,如果答案满意最多可+到50
补充1:如果是10那毫无质疑,但是答案里没有10,我怀疑是否有另外的解答方法,因此再加上一道题来做个比较,可能研究研究会得出个看法,请见【高手请进】跪求数据结构难题之二

补充2:答案是A,也是一道莫名其妙的答案.可能的顺序是80->2nd,55->3rd,34->8th,44->0??

请大家群策群力,谢

42 mod 13 =3 因为位置3已经放了55
所以用H2来计算
42 mod 11 +1=9+1=10

我没注意到h2是增量,所以
现在k=10+3=13
再计算 k mod 13 =0
所以应该插到位置0,所以选A