数据结构实验报告四——哈希表查找名字(字符串)实验题目:哈希表查找名字(字符串) 实验目标:输入一组名字(至少 50 个),将其保存并利用哈希表查找
输出哈希查找冲突次数,哈希表负载因子、查找命中率
数据结构:哈希表与数组(二维)
二维数组用于静态顺序存储名字(字符串),哈希表采纳开放定址法,用于存储名字(字符串)对应得关键字并实现对名字(字符串)得查找
需要得操作有:1、关键字求取(主函数中两次出现,未单独编为函数)关键字 key=ab s(字符串首位 A SC II 码值-第二位 ASCI I码值+第([ ]+1)位 ASC I I 码值-最后一位 ASCII 码值-倒数第二位 ASCII 码值)*字符串长度(ab s为求整数绝对值得函数)
2、处理关键字得哈希函数(Hash)利用平方取中法求关键值 key 在哈希表中得位置
公式a dd=(key*key)%1 0 00/LENGTH(a d d 为 key 在哈希表中得地址)
int H a s h(int key){ﻩr e turn((key*key)/1 000%LEN GT H);}3、处理哈希表中冲突得函数(Co l l is i o n)利用线性探测再散列处理冲突,利用全局变量 coun t统计冲突次数
i nt Coll i sio n(in t k e y,int Ha s hta b le[]){in t i;for(i=1;i