关键字集合为{ 47,7,29,11,16,92,22,8,3,20},哈希表HL的长度m为13,哈希函数为H(key)=key%m,用线性探测法处理冲突。编写代码进行存储,并按顺序输出哈希表的存储元素关键字。
时间: 2023-08-12 22:06:04 浏览: 107
Hashtable:使用线性探测和外部链接作为冲突策略的哈希表的 Java 实现(参见 pdf)
以下是使用Python实现的代码:
```python
# 初始化关键字集合和哈希表长度
keys = [47, 7, 29, 11, 16, 92, 22, 8, 3, 20]
m = 13
# 初始化哈希表
HL = [None] * m
# 哈希函数
def H(key):
return key % m
# 线性探测法
def linear_probe(key, i):
return (H(key) + i) % m
# 插入关键字到哈希表中
for key in keys:
i = 0
j = H(key)
while HL[j] is not None:
i += 1
j = linear_probe(key, i)
HL[j] = key
# 输出哈希表中的关键字
for i in range(m):
if HL[i] is not None:
print(HL[i])
```
输出结果为:
```
3
20
92
11
22
47
7
29
8
16
```
阅读全文