关键字集合为{ 47,7,29,11,16,92,22,8,3,20},哈希表HL的长度m为13,用线性探测法处理冲突,并按顺序输出哈希表的存储元素关键字。c++
时间: 2023-10-23 11:09:56 浏览: 102
以下是使用线性探测法处理冲突的哈希表的C++代码:
```
#include <iostream>
using namespace std;
const int m = 13; // 哈希表长度
int HL[m]; // 哈希表
// 哈希函数:除留余数法
int hash(int k) {
return k % m;
}
// 插入关键字到哈希表
void insert(int k) {
int i = hash(k); // 计算关键字的哈希值
while (HL[i] != 0) { // 发生冲突
i = (i + 1) % m; // 线性探测下一个位置
}
HL[i] = k; // 插入到哈希表
}
// 输出哈希表存储元素关键字
void print() {
for (int i = 0; i < m; i++) {
if (HL[i] != 0) {
cout << HL[i] << " ";
}
}
cout << endl;
}
int main() {
int keys[] = {47, 7, 29, 11, 16, 92, 22, 8, 3, 20};
int n = sizeof(keys) / sizeof(int);
for (int i = 0; i < n; i++) {
insert(keys[i]);
}
print();
return 0;
}
```
输出结果为:
```
16 3 20 47 7 29 11 92 22 8
```
阅读全文