\\n\sys.wSecond,sys.wMilliseconds); }
void CreateHash2(HashTable* H,Record* a) { int i,p=-1,c,pp;
benGetTime();
for(i=0;i p=Hash2(a[i].tel); pp=p; while(H->elem[pp]!=NULL) { pp=collision(p,c); if(pp<0){ printf(\第%d记录无法解决冲突\ continue; } } H->elem[pp]=&(a[i]); H->count++; printf(\第%d个记录冲突次数为%d。\\n\ } printf(\建表完成!\\n此哈希表容量为%d,当前表内存储的记录个数为%d.\\n\ benGetTime(); } void SearchHash2(HashTable* H,int c) {NA tele;int p,pp; system(\ benGetTime(); printf(\请输入要查找记录的电话号码:\\n\ scanf(\ p=Hash2(tele); pp=p; while((H->elem[pp]!=NULL)&&(eq(tele,H->elem[pp]->tel)==-1)) pp=collision(p,c); if(H->elem[pp]!=NULL&&eq(tele,H->elem[pp]->tel)==1){ printf(\查找成功!\\n查找过程冲突次数为%d.以下是您需要要查找的信息:\\n\\n\ printf(\姓 名:%s\\n学号:%s\\n电话号 码:%s\\n\ } else printf(\此人不存在,查找不成功!\\n\ benGetTime(); } void Save(){ FILE *fp; if((fp=fopen(\ printf(\ } fclose(fp); } void main(int argc, char* argv[]) {Record a[MAXSIZE]; int c,flag=1,i=0; HashTable *H; H=(HashTable*)malloc(LEN); for(i=0;i while (1) { int num; printf(\ printf(\ 欢迎使用同学通讯录录入查找系统 \ printf(\哈希表的设计与实现\ printf(\ 【1】. 添加用户信息 \ printf(\ 【2】. 读取所有用户信息 \ printf(\【3】. 以姓名建立哈希表(再哈希法解决冲突) \ printf(\【4】. 以电话号码建立哈希表(再哈希法解决冲突) \ printf(\ 【5】. 查找并显示给定用户名的记录 \ printf(\ 【6】. 查找并显示给定电话号码的记录 \ printf(\ 【7】. 清屏 \ printf(\ 【8】. 保存 \ printf(\【9】. 退出程序 \ printf(\ 温馨提示: \ printf(\ Ⅰ.进行5操作前 请先输出3 \ printf(\ \ printf(\ printf(\请输入一个任务选项>>>\ printf(\ scanf(\ switch(num){ case 1: getin(a); break; case 2: ShowInformation(a); break; case 3: CreateHash1(H,a); break; case 4: CreateHash2(H,a); break; case 5: c=0; SearchHash1(H,c); break; case 6: c=0; SearchHash2(H,c); break; case 7: Cls(a); break; case 8: Save(); break; Ⅱ.进行6操作前请先输出4 case 9: return 0; break; default: printf(\你输错了,请重新输入!\ printf(\ } } system(\ return 0; } 五、测试数据及测试结果: 1、主界面 2、添加用户信息 添加后自动跳转到主界面 3、查询所有用户信息(并且自动跳转到主界面) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构课程设计--哈希表实验报告(3)在线全文阅读。
相关推荐: