哈希表设计C++(首选)或C语言——针对你的班级中的人名设计一个哈希表,使得平均查找长度不超过R,完成相

问题描述:

哈希表设计C++(首选)或C语言——针对你的班级中的人名设计一个哈希表,使得平均查找长度不超过R,完成相
应的查表和建表程序.1、基本要求:(30个填入哈希表的)人名用汉语拼音形式(长度不超过19个字符),取平均查找长度上限为2,哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突.字符的取码方法可用C语言的toascii函数,并可对过长的人名作折叠处理.2、本人基础差,希望高手在行后附上//释义,感激不尽!
1个回答 分类:综合 2014-09-25

问题解答:

我来补答
#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
 
 
展开全文阅读
剩余:2000
上一页:这一步看不懂
下一页:这题详细解释