哈希表设计C++(首选)或C语言——针对你的班级中的人名设计一个哈希表,使得平均查找长度不超过R,完成相
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/07 17:10:48
哈希表设计C++(首选)或C语言——针对你的班级中的人名设计一个哈希表,使得平均查找长度不超过R,完成相
应的查表和建表程序.1、基本要求:(30个填入哈希表的)人名用汉语拼音形式(长度不超过19个字符),取平均查找长度上限为2,哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突.字符的取码方法可用C语言的toascii函数,并可对过长的人名作折叠处理.2、本人基础差,希望高手在行后附上//释义,感激不尽!
应的查表和建表程序.1、基本要求:(30个填入哈希表的)人名用汉语拼音形式(长度不超过19个字符),取平均查找长度上限为2,哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突.字符的取码方法可用C语言的toascii函数,并可对过长的人名作折叠处理.2、本人基础差,希望高手在行后附上//释义,感激不尽!
![哈希表设计C++(首选)或C语言——针对你的班级中的人名设计一个哈希表,使得平均查找长度不超过R,完成相](/uploads/image/z/7439583-39-3.jpg?t=%E5%93%88%E5%B8%8C%E8%A1%A8%E8%AE%BE%E8%AE%A1C%2B%2B%EF%BC%88%E9%A6%96%E9%80%89%EF%BC%89%E6%88%96C%E8%AF%AD%E8%A8%80%E2%80%94%E2%80%94%E9%92%88%E5%AF%B9%E4%BD%A0%E7%9A%84%E7%8F%AD%E7%BA%A7%E4%B8%AD%E7%9A%84%E4%BA%BA%E5%90%8D%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E5%93%88%E5%B8%8C%E8%A1%A8%2C%E4%BD%BF%E5%BE%97%E5%B9%B3%E5%9D%87%E6%9F%A5%E6%89%BE%E9%95%BF%E5%BA%A6%E4%B8%8D%E8%B6%85%E8%BF%87R%2C%E5%AE%8C%E6%88%90%E7%9B%B8)
#include
#include
using namespace std;
#define HASH_LENGTH 50 //哈希表的长度
#define M 47 //随机数
#define NAME_NO 30 //人名的个数
typedef struct
{ char *py; //名字的拼音
int k; //拼音所对应的整数
}NAME;
NAME NameList[HASH_LENGTH]; //全局变量NAME
typedef struct //哈希表
{ char *py; //名字的拼音
int k; //拼音所对应的整数
int si; //查找长度
}HASH;
HASH HashList[HASH_LENGTH]; //全局变量HASH
void InitNameList() //姓名(结构体数组)初始化
{ char *f;
int r,s0,i;
for (i=0; i
#include
using namespace std;
#define HASH_LENGTH 50 //哈希表的长度
#define M 47 //随机数
#define NAME_NO 30 //人名的个数
typedef struct
{ char *py; //名字的拼音
int k; //拼音所对应的整数
}NAME;
NAME NameList[HASH_LENGTH]; //全局变量NAME
typedef struct //哈希表
{ char *py; //名字的拼音
int k; //拼音所对应的整数
int si; //查找长度
}HASH;
HASH HashList[HASH_LENGTH]; //全局变量HASH
void InitNameList() //姓名(结构体数组)初始化
{ char *f;
int r,s0,i;
for (i=0; i