散列表的设计与实现3425215

散列表的设计与实现3425215

ID:17386217

大小:231.00 KB

页数:17页

时间:2018-08-30

散列表的设计与实现3425215_第1页
散列表的设计与实现3425215_第2页
散列表的设计与实现3425215_第3页
散列表的设计与实现3425215_第4页
散列表的设计与实现3425215_第5页
资源描述:

《散列表的设计与实现3425215》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、中北大学数据结构课程设计说明书   学生姓名: 范晓学号:1021011537 学院:软件学院专业:软件开发与测试 题目:散列表的设计与实现指导教师何志英    2011年12月20日161.设计任务概述(包括系统总体框图及功能描述)总体框图:电话号码查询录入子系统查询子系统姓名号码地址号码查找姓名查找功能描述:1)设每个记录有下列数据项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。2.本设计所采用的数据结构(如:链表、栈、树、图等)核心数

2、据结构用到的结构体要采用动态内存分配和存放记录的散列表3.功能模块详细设计本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为几个部分分别编写:16键盘输入各人的信息:voidgetin()显示输入的用户信息:voidShowInformation()除留余数法构造哈希函数:intHash1()构造把字符串转换成整型数哈希函数:intHash2()冲突处理函数:Statuscollision()以姓名为关键字建表:voidCreateHash1()以姓名为关键字查表:voidSearchHash1()以电话号码为关键字建表:voidCreat

3、eHash2()以电话号码为关键字查表:voidSearchHash2()输出菜单函数:intmain()3.1详细设计思想要用散列表设计实现电话号码查询系统,对存入的联系人的名字电话以及地址进行存储,并在输入电话号码或姓名后得出此记录的所有信息,要求有菜单界面和清屏功能.首先,此程序,多次用到哈希函数,此处先用除留余数法对折叠后的数构造哈希函数,再用二次探测再散列法建立冲突处理函数解决冲突,再以电话号码和姓名为关键字建立散列表(若哈西地址冲突进行冲突处理),在此之前,必须先用一系列输出函数输出一个菜单.整个程序的设计思路到此结束。……………………….3.2核心代码#incl

4、ude#include#include#include#defineMAXSIZE20//电话薄记录数量#defineMAX_SIZE20//人名的最大长度#defineHASHSIZE53//定义表长#defineSUCCESS1#defineUNSUCCESS-1#defineLENsizeof(HashTable)typedefintStatus;16typedefcharNA[MAX_SIZE];typedefstruct{//记录NAname;NAtel;NAadd;}Record;type

5、defstruct{//哈希表Record*elem[HASHSIZE];//数据元素存储基址intcount;//当前数据元素个数intsize;//当前容量}HashTable;Statuseq(NAx,NAy){//关键字比较,相等返回SUCCESS;否则返回UNSUCCESSif(strcmp(x,y)==0)returnSUCCESS;elsereturnUNSUCCESS;}StatusNUM_BER;//记录的个数voidgetin(Record*a){//键盘输入各人的信息printf("输入要添加的个数:");scanf("%d",&NUM_BER);i

6、nti;for(i=0;i

7、息:姓名:%s电话号码:%s联系地址:%s",i+1,a[i].name,a[i].tel,a[i].add);}voidCls(Record*a){printf("*");system("cls");}longfold(NAs){//人名的折叠处理char*p;longsum=0;NAss;strcpy(ss,s);//复制字符串,不改变原字符串的大小写strupr(ss);//将字符串ss转换为大写形式p=ss;while(*p!='')sum+=*p++;16printf("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。