2014广工数据结构实验报告哈希表

2014广工数据结构实验报告哈希表

ID:20660107

大小:84.93 KB

页数:7页

时间:2018-10-14

2014广工数据结构实验报告哈希表_第1页
2014广工数据结构实验报告哈希表_第2页
2014广工数据结构实验报告哈希表_第3页
2014广工数据结构实验报告哈希表_第4页
2014广工数据结构实验报告哈希表_第5页
资源描述:

《2014广工数据结构实验报告哈希表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构设计性实验报告课程名称_数据结构实验_题目名称哈希衷学生学院计算机学院专业班级学号学生姓名指导教师2015年7月2日1•题目采用哈希表为存储结构,实现抽象数据类型HashTablecADTHAS{数据对象D:D是具有相同特性的数据元素的集合。数据关系R:根据设定的哈希蚋数和处理冲突的方法将一组关键字映像到一个连续的有限地址集上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表称为哈希表。这一映像过程称为造表或散列,所得存储位置称哈希地址或散列地址。基本操作:InitHash(&H)操作结果:初始化哈希表H。DestoyHash(&H)初始条件:哈希表H已存在。操作结

2、果:销毁哈希表H。CreateHash(&H)初始条件:哈希表H己存在。操作结果:构造哈希表H。SearchHash(H)初始条件:哈希表已存在。操作结果:查找哈希表H屮元素。InsertHash(&H)初始条件:哈希表H已存在。操作结果:插入元素到哈希表DeleteHash(&HZkey,&e)初始条件:哈希表己存在且非空。操作结果:删除H的第i个元素,并用e返回其值,H的长度减1。}ADTList3.算法设计^include#include#include#include#include#d

3、efinerandom(x)(rand()%x)#defineOK1#defineSUCCESS1#defineUNSUCCESS0#defineDUPLICAPE-1#defineOVERFLOW0typedefintKeyType;typedefintStatus;typedefstruct{KeyTypekey;inttag;}RecordrdType,RcdType;typedefstruct{RcdType*rcd;intsize;intcount;JHashTable;intInitHash(HashTable*H,intsize){//初始化哈希表inti;H->rcd=

4、(RcdType*)malloc(size*sizeof(RcdType));if(NULL==H->rcd)returnOVERFLOW;for(i=0;i<=size;i++)H->rcd[i].tag=0;H-〉size=size;H->count=0;returnOK;}intDestoyHash(HashTable*H)//销毁哈希表{free(H->rcd);H->rcd=NULL;H->count=0;H->size=0;returnOK;}intSearchHash(HashTableH,KeyTypekey,int&p,int&c){//S找哈希表c=0;p=key%

5、H.size;//求得哈希地址while(H.rcd[p].tag!=0&&(H.rcd[p].key!=key

6、

7、-1==H.rcd[p].tag)){p=(p+1)%H.size;c++;}//求得下一探测地址if(H.rcdfpl.key==key)returnSUCCESS;elsereturnUNSUCCESS;}intInsertHash(HashTable*H,RcdTypee){//哈祐表的插入intc=O,j;if(SUCCESS==SearchHash(*H,e.key,j,c))return-1;else{H->rcd

8、jJ=e;H->rcdlj).tag=l;+

9、+H->count;returnc;}}intDeleteHash(HashTable*H,KeyTypekey,RcdTypee){//哈希表的删除intj,c;if(UNSUCCESS==SearchHash(*H,key,j,c))returnUNSUCCESS;else{e=H->rcd[jJ;H-〉rcd[jl.tag=-l;H->count—;returnSUCCESS;}}voiddi$play(Ha$hTable*H){printf("哈希表数据for(inti=1;icount;i++){printf(H%dn,H->rcd[il);)printf(H

10、");}4.测试intmain(){intij,select,xl,x2,x3,x4,g,n,k,b,f;RcdTypee;KeyTypekey;srand(time(O));//初始化随机种子HashTableH;InitHash(&H,9);for(i=l;i<=10;i++){e.tag=l;e.key=random(50);InsertHash(&H,e);}printf(""dodisplay(&H);printfC'sele

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

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

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