关于哈希表的一道习题,望大神解答~?

2024-05-19 13:07

1. 关于哈希表的一道习题,望大神解答~?

呵呵,这也是我曾经最搞不懂的地方呀,这个就是出题人给出来的一系列的条件而已,不要过多的考虑为什么,取不到怎么办。这个就是要明确3点:1、哈希函数,2、冲突处理方式,3、哈希表地址范围。一般情况就是哈希函数的取余值的大小与哈希表地址范围一致,但也会出现题目中的这种不一致的情况,而这里的不一致有时候是有理由的,不如这里采用线性探测再散列的方式处理冲突,是取di=1,2,3,4,....m-1的,当这里的15位置被占用时,就是要取在下一个位置了,直到达到散列地址的最大值。

另外看了一下你贴出来的图片,明白了你的问题在哪里。你要明确一点:在书本上的开放定址法的公式是怎么样的:H(key)=(H(key)+di)%m,i为1,2,3,...,m-1
比如46,第一次的H(key)值为15,已经被占用,那么再次计算时H(key)=(15+1)%m,要注意了,这里的m是18还是16?????定义上的m值是指的哈希表的长度,而不是哈希函数中的16。所以你的上面的是正确的。这也是曾经困扰我很长时间的问题呀,再次遇到了,解答一下,不要嫌啰嗦。OVER。

关于哈希表的一道习题,望大神解答~?

2. 哈希-练习题(简单写出就好,我收到了马上采纳谢谢)

(1)哈希函数为H(x)=x%9

(2)