早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据结构表,字序列构造哈希表,设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77},采用哈希函数:H(key)=key%13采用开放地址法的线性探测再散列方法解决冲突,试在0~18的散

题目详情
数据结构表,字序列构造哈希表,
设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77},采用哈希函数:
H(key)= key % 13
采用开放地址法的线性探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造哈希表。
▼优质解答
答案和解析

Hi=(H(key)+di) Mod m, i=1,2,3...,k(k<=m-1) m为哈希表长,di=1,2,3,4,...m-1,
这里m=19,线性探测再散列是增量序列di=1,2,3,...,m-1
19%13=6,01%13=1,23%13=10,14%13=1,55%13=3,20%13=7 未出现冲突
处理84时,84%13=6,但6单元已占用,出现冲突,调用冲突处理函数H1=(H(84)+1) Mod 19=7,但7单元又被占用,再次调用冲突处理函数得H2=(H(84)+2) Mod 19=8,未冲突。
以下就不一一列举了,下面把我算得的答案贴一下,可能有误,欢迎指正!
表格横着不好对齐我就竖着放吧
地址单元 关键字
0 01
1 14
2 27
3 55
4 68
5
6 19
7 20
8 84
9
10 23
11 11
12 10
13 77
14
15
16
17
18
其实线性探测再散列比较特殊,就是查找当前冲突单元往下第一个空闲地址单元,不用算直接用眼睛扫一下就知道下一个应放哪
希望我的解答有助于你理解~