山东科技大学学生课程设计
实习 6、哈希表设计
一、 需求分析
1. 问题描述
针对某个集体〔比方你所在的班级〕中的“人名〞设计一个哈希表,使得平均查找长度
均不超过 ,完成相应的建表和查表顺序。
2. 根本要求
假设人名为中国人的汉语拼音形式。待填入哈希表的人名共有 个,取平均查找长度
的上限为 。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。
3. 测试数据
取读者周围较熟悉的 个人的。
4. 实现提示
如果随机数自行构造,那么应首先调整好随机函数,使其分布均匀。人名的长度均不超
过 个字符〔最长的人名如:庄双双〔〕〕。字符的取码方法可直接
利用 语言中的 函数,并可先对过长的人名先作折叠处理。
二、概要设计
数据对象 : 是具有相同特征的数据元素的集合。各数据元素均含有类型相同,可唯
一标识数据元素的关键字。
数据关系 :数据元素同属一个集合。
!
操作结果:初始化表。
" !
操作结果:建立哈希表。
#$ !
操作结果:显示表。
#$ !
操作结果:显示哈希表。
%& !
操作结果:查找。
'
三、详细设计〔源代码〕
〔使用 语言〕
(&)&*+
(&),*+--, 用到的头文件
(&)&*+--随机数用到的头文件
(&)$#*+-- !用到的头文件
(&)"*+--查找时比拟用的头文件
(&./012--哈希表的长度
(&.345--小于哈希表长度的 3
(&.61/01--表的长度
$#&7"
--表
"8#$9--名字的拼音
9--拼音所对应的
'619
61:/01;9--全局定义表
$#&7"