问答题
对于一个长度为m=41的散列表,采用双散列法解决冲突,对于关键字k
1
,k
2
,k
3
,若h(k
1
)=30,h(k
2
)=28,h(k
3
)=19,h
2
(k
1
)=14,h
2
(k
2
)=27,h
2
(k
3
)=35,则k
1
,k
2
,k
3
的探测序列中前4个位置各为多少。
问答题
k
1
的探测序列:
30
,______,______,______;
【正确答案】
【答案解析】在双散列法中,求初始散列地址的散列函数为h(x),求下一个空位的增量函数为h
2
(x),一旦发生冲突,求下一个空位的公式为:
H
i
=(h(x)+i×h
2
(x))%m,i=1,2,…,m-1
据此可得:
k
1
的探测序列:
30
,
3
,
17
,
31
;
问答题
k
2
的探测序列:
28
,______,______,______;
【正确答案】
【答案解析】k
2
的探测序列:
28
,
14
,
0
,
22
;
问答题
k
3
的探测序列:______,______,______,______;
【正确答案】
【答案解析】k
3
的探测序列:
19
,
13
,
7
,
1
。