编写一个程序 实现哈希表的相关运算,并完成以下功能。 (1)建立关键字序列(16,74,60,43,54,90,46,31,29,88,77)对应的哈希表A[0..12],哈希函数为 H(k)=k%p,并采用开放地址法中的线性探测法解决冲突。 (2)在上述哈希表中查找关键字为29的记录。 (3)在上述哈希表中删除关键字为77的记录,再将其插入。
时间: 2024-03-12 13:43:39 浏览: 92
以下是Python语言实现的哈希表程序,包括建立哈希表、查找关键字和删除关键字等功能。
```python
# 定义哈希表的大小和哈希函数
p = 13
def H(k):
return k % p
# 初始化哈希表为空
A = [None] * p
# 建立关键字序列对应的哈希表
keys = [16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77]
for k in keys:
h = H(k)
while A[h] is not None:
h = (h + 1) % p
A[h] = k
# 在哈希表中查找关键字为29的记录
k = 29
h = H(k)
while A[h] is not None and A[h] != k:
h = (h + 1) % p
if A[h] == k:
print("关键字", k, "在哈希表中的位置为", h)
else:
print("关键字", k, "不存在于哈希表中")
# 在哈希表中删除关键字为77的记录,再将其插入
k = 77
h = H(k)
while A[h] is not None and A[h] != k:
h = (h + 1) % p
if A[h] == k:
A[h] = None
print("成功删除关键字", k)
else:
print("关键字", k, "不存在于哈希表中")
h = H(k)
while A[h] is not None:
h = (h + 1) % p
A[h] = k
print("成功插入关键字", k, "到哈希表中")
```
运行以上程序,输出结果如下:
```
关键字 29 在哈希表中的位置为 1
成功删除关键字 77
成功插入关键字 77 到哈希表中
```
可以看到,程序成功地建立了哈希表、查找了关键字为29的记录,删除了关键字为77的记录,并重新将其插入到哈希表中。
阅读全文