设给定的散列表存储空间为H[1-m],每个单元可存放一个记录,H[i]的初始值为零,选取散列函数为H(R.key),其中key为记录R的关键字,解决冲突的方法为线性控测法,编写一个函数将某记录R填入到散列表H中。
时间: 2024-02-05 19:10:48 浏览: 101
gluon_6l3机器人D-H建模+轨迹规划+simsacpe仿真-源文件
5星 · 资源好评率100%
以下是使用线性探测法将记录R填入散列表H的函数实现:
```
void insertRecord(Record R, Record H[], int m) {
int i = R.key % m; // 计算散列地址
while (H[i].key != 0) { // 发生冲突
i = (i + 1) % m; // 线性探测下一个地址
}
H[i] = R; // 将记录填入散列表中
}
```
其中,Record是一个结构体类型,表示记录,包含一个关键字key和其他需要存储的数据。m为散列表的大小,H为散列表数组。该函数首先计算记录R的散列地址,如果该地址已经被占用,则使用线性探测法寻找下一个未被占用的地址,直到找到一个空闲位置为止,然后将记录R填入该位置中。
阅读全文