问答题 常用的构造哈希函数的方法有哪些?若在哈希表中删除一个记录,应如何操作?为什么?已知一组关键字为(19,14,23,01,68,20,84,27,55,11,10,79),按哈希函数H(Key)=KeyMOD 13和线性探测再散列处理冲突的方法在地址空间A[0..15]中构造哈希表。【燕山大学1999八(14分)】
【正确答案】正确答案:常用构造哈希函数的方法有: (1)数字分析法。该方法需要事先知道关键字集合,且关键字位数比散列表地址位数多,应选数字分布均匀的位。 (2)平方取中法。将关键字值的平方取中间几位作哈希地址。 (3)除留余数法。H(key)=key%p,通常P取小于等于表长的最大素数。 (4)折叠法。将关键字分成长度相等(最后一段可不等)的几部分,进行移位叠加或间界叠加,其值作为哈希地址。 (5)基数转换法。两基数要互素,且后一基数要大于前一基数。在哈希表中删除一个记录,在链地址法情况下可以物理地删除。在开放定址法下,不能物理地删除,只能作删除标记。该地址可能是该记录的同义词查找路径上的地址,物理地删除就中断了查找路径。因为查找时碰到空地址就认为是查找失败。
【答案解析】