本文档详细介绍了哈希表的数据结构设计原理与实现方法,包括哈希函数的选择、冲突解决策略以及哈希表的性能分析等内容。适合计算机科学专业学生和编程爱好者阅读。
### 问题描述
针对某个集体(例如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度均不超过R。完成相应的建表和查表顺序。
### 基本要求
假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,采用伪随机探测再散列法处理冲突。
### 概要设计
1. 构造结构体:`typedef struct{};`
2. 姓名表的初始化:`void InitNameTable();`
3. 建立哈希表:`void CreateHashTable();`
4. 显示姓名表:`void DisplayNameTable();`
5. 姓名查找:`void FindName();`
6. 主函数:`void main() ;`
### 详细设计
1. **姓名表的初始化**
```c
void InitNameTable()
{
NameTable[0].py = louyuhong;
NameTable[1].py = shenyinghong;
NameTable[2].py = wangqi;
NameTable[3].py = zhuxiaotong;
}
```