哈希表实现号码查询实验报告.pdf
文本预览下载声明
华北电力大学
实 验 报 告
|
|
实验名称 哈希表
课程名称 数据结构
|
|
专业班级: 学生姓名:
学 号: 成 绩:
指导教师: 实验日期:
华 北 电 力 大 学 实 验 报 告
一、实验目的
(1)掌握哈希表的基本操作。
(2)掌握插入、删除、查找等运算,能够灵活应用这种数据存储结构。
二、实验内容及要求
1.实验要求
设计哈希表实现电话号码查询系统。设计程序完成以下要求:
(1)设每个记录有下列数据项:电话号码、用户名、地址;
(2)从键盘输入各记录 ,以电话号码为关键字建立哈希表 (至少要有 12个以上的
记录,哈希表的长度为 8);
(3)采用链地址法解决冲突;
(4)显示建立好的哈希表,对于学有余力的同学可以实现哈希表的查找。
2.实验说明:
(1)采用除留余数法进行哈希表的散列,即以电话号码作为主关键字,将电话号码
的 11位相加,按照模 7 取余;
(2)解决冲突用链地址法。
3.实验数据:
(1)姓名:张三 电话号码地址:保定
(2)姓名:李四 电话号码地址:石家庄……
三、 实验仪器与设备
计算机,记事本,visual C++6.0
四、问题分析与系统设计
系统描述:设计哈希表实现电话号码查询系统。其中,电话号码的每个记录有三个
数据项:电话号码、用户名和地址;以电话号码为关键字建立哈希表;假定哈希表的长
度为 8,采用链地址法解决冲突。
处理信息 :
1. 采用除留余数法进行哈希表的散列,即以电话号码为主关键字,将电话号码
的 11位相加,按照模 7 取余;
2. 解决冲突用链地址法。
功能设计 :
1. 通过哈希表的构造存储电话号码的相关信息;
2. 能够遍历哈希表,显示所有数据;
3. 通过电话号码查找哈希表,显示与该电话号码有关的所有信息;
通过姓名查找哈希表,显示与该姓名有关的所有信息;
算法设计:
采用除留余数法进行哈希表的散列,解决冲突用链地址法。
第 页 共 页
华 北 电 力 大 学 实 验 报 告
1. 定义哈希表节点的结构体,包括数据域和指针域。
#define length 8 //length of list
struct list //list
{
struct node *lnext;//point a record
}lis[length];
struct node //record node
{
char name[8], address[20];
char num[11];
struct node *next;
};
2. 以电话号码为关键字,用除留余数法进行哈希表的散列
显示全部