问题 单项选择题

设散列表的地址空间为0~12,散列函数为h(k)=k mod 13,用线性探查法解决碰撞。现从空的散列表开始,依次插入关键码值41,60,27,90,18,则最后一个关键码82的地址为( )。

A.4

B.5

C.6

D.7

答案

参考答案:C

解析: 用线性探查法处理碰撞就是当碰撞发生时形成一个探查序列,沿着这个序列逐个地址探查,直到找到一个开放的地址(即未被占用的单元),并发生碰撞的关键码放入该地址中。即若发生碰撞的地址为d,则探查的地址序列为d+1,d+2…,m-1,0,1,…,d-1其中m是散列表存储区域的大小。由本题可知:41%13=2,故关键码41存储于地址2;14%13=1,故关键码14存储于地址1;60%13=8,故关键码60存储于地址8;90%13=12,故关键码90存储于地址12;18%13=5,故关键码18存储于地址5;如下表所示。

地址 0 1 2 3 4 5 6 7 8 9 10 11 12
Key 14 41 18 60 90

多项选择题
问答题 简答题