设散列表的地址空间为0到10,散列函数为h(k)=k mod 11,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值95,14,27,68,82,则最后一个关键码82的地址为

admin2010-05-13  22

问题 设散列表的地址空间为0到10,散列函数为h(k)=k mod 11,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值95,14,27,68,82,则最后一个关键码82的地址为

选项 A、4
B、5
C、6
D、7

答案4

解析 散列表的基本思想是:由结点的关键码值决定结点的存储地址,即以关键码值k为自变量.通过一定的函数关系h(称为散列函数),计算出对应的函数值h (k)来,把这个值解释为结点的存储地址,将结点存入该地址中。在散列表中,不同的关键码值可能对应到同一存储地址,这种现象叫碰撞,处理碰撞基本有两种方法:拉链法和线性探索法。在本题中,所采用的散列函数为h(k)=k mod 11,用线性控查法解决碰撞。计算顺序如下:(1)h(95)=95 mod 11=7,存在地址为7的位置;(2)h(14)=14 mod 11=3.存在地址为3的位置;(3) h(27)=27 mod 11=5,存在地址为5的位置,(4)h(68)=1 68 mod 11=2,存在地址为2的位置;(5)h(82)=82 mod 11=5,与关键码为27的存储位置发生碰撞,采用线性探索的方法解决,即将82存在5以后的首个开放位置,在本题中即为6,所以82存在的地址为6的位置。
转载请注明原文地址:https://kaotiyun.com/show/GuSZ777K
0

最新回复(0)