文档介绍:哈希表c语言程序代码/*实实实目名称:实实实实实实实实实实号系的实实目的与要求::掌握数据构中的找、排序等算法相知实实实实实实实实实实实实实实实实;掌握C或VC++实实实实实实实言中程序的方法。,完成以下程序功能实实实实实实实实实实实实:(1)自存构号表的初始化,实实实实实实实实实实实实实实实实实(2)实实实实实实实实实写一个号系,要求有号的入实实实实实实实实实(插入)存、、实实实实实实实实除、排序、打印等模;实实实实性:实合性(4学实)实明:存构可采用哈希表的方式实实实实实实实实实实实实,完成用号或姓名字构建哈希表实实实实实实实实实实实实实实实实,并行实实实实实实实实实实实实实实实、添加、除、打印等功能模实(此方式推荐方式实实实实实),其次子函数的用序由最用决定实实实实实实实实实实实(可用多分支构实实),程序中有用的操作界面实实实实实实实实实实实.*/#include""#include""#ESS1#defineNULL_KEY-2//-2实实实实实无志#ESS0#defineDUPLICATE-1inthashsize[]={11,19,29,37};//哈希表容量增表实实实,一个合适的素数序列intm=0;//哈希表表,实全局量实实typedefintKeyType;//实实实实实实字整形typedefstruct{charname;//姓名KeyTypenum;//号实}Node;typedefstruct{Node*elem;//数据元素存地址实实实,实实实分配数intcount;//当前数据元素个数intsizeindex;//hashsize[]实当前容量}HashTable;voidChuangJian(HashTable&H){//构建一个空哈希表inti;=0;//=0;//初存容量实实实实实实hashsize[0]m=hashsize[0];=(Node*)malloc(m*sizeof(Node));if(!)exit(-2);//存分配失实实实实实for(i=0;i<m;i++)[i].num=NULL_KEY;//未填的志实实实实实}voidDaYin(intp,Nodee){//打印下实实p的实实printf("哈希下=%d实姓名:%c号实:%d\n",p,,);}intHaXi(KeyTypeK){//哈希函数(m实实表,全局量实实)returnK%m;}voidChongTu(int&p,intd){//实实实实实性探再散列p=(p+d)%m;}intEQ(inta,intv){//判断a和v是否相等if(a==v)return1;//相等返回1elsereturn0;//否返回实实实0}intFind(HashTableH,KeyTypeK,int&p){//在放定址哈希表实实实实实实实H中找字实实实实实实K的元素,若实找成//功,以p指示待数据元素在表中下实实实实实实实实实实,ESS;否实,ESSintc=0;p=HaXi(K);//求得哈希地址while([p].num!=NULL_KEY&&!EQ(K,[p].num)){//实实实位置中填有,并且与字不相等实实实实实实c++;if(c<m)ChongTu(p,c);//ESS;//实找不成功}if(EQ(K,[p].num))ESS;//实找成功,ESS;//实找不成功}intChaXun(HashTableH,KeyTypeK,int&p,int&c){//在放定址哈希表中找字实实实实实实实实实实实实实实K的元素,若找成功实实实实,以p指示//待数据元素在表中位置实实实实实实实实实实,ESS;否实,以p指示插入位置,ESS;c用以冲突次数实实实实实,其初实实0p=HaXi(K);//求得哈希地址while([p].num!=NULL_KEY&&!EQ(K,[p].num)){//实实实位置中填有,并且与字不相等实实实实实实if(c<m)ChongTu(p,c);//求得下一探地址实实实pelsebreak;}if(EQ(K,[p].num))ESS;//实找成功,ESS;//若找不成功实实实实实,p返回插入位置}voidChongJian(HashTable&H){//重建哈希表intChaRu(HashTable&H,Nodee);inti,count=;Node*p,*elem=(Node*)malloc(count*sizeof(Node));p=ele