设计题目 哈希表查找的设计 任务: 设哈希表长为2 0 ,用除留余数法构造一个哈希函数,以开放定址法中的线性探测再散列法作为解决冲突的方法,编程实现哈希表查找、插入和建立算法。 功能要求: 编程实现哈希表查找、插入和建立算法 需求分析 用除留余数法构造一个哈希函数,以开放定址法中的线性探测再散列法作为解决冲突的方法,编程实现哈希表查找、插入和建立算法 概要设计 typedef struct { int shuzhi; }hashtable; int hash_function(int shuzhi,int Prime); void CreateHashTable(hashtable ht[],int Prime); int InsertHashTable(hashtable ht[], int shuzhi,int Prime); int SearchHash(hashtable ht[], int shuzhi,int Prime); 程序调用关系如下: 主程序模块 CreateHashTable SearchHash InsertHashTable SearchHash hash_function 详细设计 #include #define Length 20 #define SUCCESS 1 #define UNSUCCESS 0 typedef struct { int shuzhi; }hashtable; int hash_function(int shuzhi,int Prime); void CreateHashTable(hashtable ht[],int Prime); int InsertHashTable(hashtable ht[], int shuzhi,int Prime); int SearchHash(hashtable ht[], int shuzhi,int Prime); int hash_function(int shuzhi,int Prime) { return(shuzhi % Prime); } void CreateHashTable(hashtable ht[],int Prime) { int hash_table_number = 0; int shuzhi = 0; printf("请输入哈希表中关键字个数,不要超过%d\n", Length); scanf("%d", &hash_table_number); for (int i = 0; i < hash_table_number; i++) { printf("请输入哈系表的关键字:\n"); scanf("%d", &shuzhi); InsertHashTable(ht, shuzhi,Prime); } } int InsertHashTable(hashtable ht[], int shuzhi,int Prime) { int result = 0; result = SearchHash(ht, shuzhi,Prime); if (ht[result].shuzhi == 0) { ht[result].shuzhi = shuzhi; printf("插入数据成功!\n"); return SUCCESS; } else { printf("插入数据失败\n"); return UNSUCCESS; } } int SearchHash(hashtable ht[], int shuzhi,int Prime) { int hash_address = 0; int i = 0; hash_address = hash_function(shuzhi,Prime); //...