/**
* 实验题目:
* 实现哈希表的相关运算算法
* 实验目的:
* 领会哈希表的构造和查找过程及其相关算法设计
* 实验内容:
* 设计程序,实现哈希表的相关运算,并完成如下功能:
* 1、建立关键字序列(16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77)对应的哈希
* 表A[0..12],哈希函数为H(k)=k%p,并采用开放地址法中的线性探测法解决冲突
* 备注:
* 这里的哈希表A[0..12],m=13,取p=m=13,哈希函数H(k)=k%13
* 解决冲突的线性探测法是:d(0)=H(k),d(i+1)=(d(i)+1)%m
* 2、在上述哈希表中查找关键字为29的记录
* 3、在上述哈希表中删除关键字为77的记录,再将其插入
*/
#include <stdio.h>
#define MAX_SIZE (100) // 定义最大哈希表长度
#define NULL_KEY (-1) // 定义空关键字值
#define DEL_KEY (-2) // 定义被删关键字值
typedef int key_type; // 关键字类型
typedef char info_type; // 其他数据类型
typedef struct {
key_type key; // 关键字域
info_type data; // 其他数据域
int det_times; // 探测次数域
}HashTable; // 哈希表元素类型
/*---------------将关键字为key的记录插入到哈希表中-------------*/
void insert_ht(HashTable ha[], int &n, int m, int p, key_typ

最低0.47元/天 解锁文章
1097

被折叠的 条评论
为什么被折叠?



