77范文网 - 专业文章范例文档资料分享平台

数据结构课程设计--哈希表实验报告(2)

来源:网络收集 时间:2019-01-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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; case 9: return 0; break; default:

printf(\你输错了,请重新输入!\ printf(\ } }

system(\ return 0;

}

3、模块结构图及各模块的功能:

四、源程序清单:

#include #include #include #include

#define MAXSIZE 20 #define MAX_SIZE 20 #define HASHSIZE 53 #define SUCCESS 1 #define UNSUCCESS -1

#define LEN sizeof(HashTable) typedef int Status;

typedef char NA[MAX_SIZE];

typedef struct {

NA name; NA xuehao; NA tel; }Record;

typedef struct {

Record *elem[HASHSIZE]; int count; int size; }HashTable;

Status eq(NA x,NA y) {

if(strcmp(x,y)==0) return SUCCESS;

else return UNSUCCESS; }

Status NUM_BER;

void getin(Record* a) {int i;

system(\ printf(\输入要添加的个数:\\n\ scanf(\

for(i=0;i

printf(\请输入第%d个记录的姓名:\\n\ scanf(\

printf(\请输入%d个记录的学号:\\n\ scanf(\

printf(\请输入第%d个记录的电话号码:\\n\ scanf(\ } }

void ShowInformation(Record* a) {int i;

system(\

for( i=0;i

printf(\第%d个用户信息:\\n 姓 名:码:%s\\n\}

void Cls(Record* a){ printf(\

system(\}

long fold(NA s) {

char *p; long sum=0; NA ss;

strcpy(ss,s); strupr(ss); p=ss;

while(*p!='\\0') sum+=*p++;

printf(\ return sum; }

int Hash1(NA str) {

%s\\n 学号:%s\\n 电话号 long n; int m;

n=fold(str); m=n%HASHSIZE; return m; }

int Hash2(NA str) {

long n; int m;

n = atoi(str); m=n%HASHSIZE; return m; }

Status collision(int p,int c) {

int i,q; i=c/2+1;

while(i

q=(p+i*i)%HASHSIZE; if(q>=0) return q; else i=c/2+1; } else{

q=(p-i*i)%HASHSIZE; c++;

if(q>=0) return q; else i=c/2+1; } }

return UNSUCCESS; }

void benGetTime();

void CreateHash1(HashTable* H,Record* a) { int i,p=-1,c,pp;

system(\ benGetTime();

for(i=0;i

c=0;

p=Hash1(a[i].name); 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 SearchHash1(HashTable* H,int c) {int p,pp;NA str;

system(\ benGetTime();

printf(\请输入要查找记录的姓名:\\n\ scanf(\

p=Hash1(str); pp=p;

while((H->elem[pp]!=NULL)&&(eq(str,H->elem[pp]->name)==-1)) pp=collision(p,c);

if(H->elem[pp]!=NULL&&eq(str,H->elem[pp]->name)==1){ printf(\查找成功!\\n查找过程冲突次数为%d.以下是您需要要查找的信息:\\n\\n\ printf(\姓 名:%s\\n学号:%s\\n电话号码:%s\\n\ }

else printf(\此人不存在,查找不成功!\\n\ benGetTime(); }

void benGetTime(){ SYSTEMTIME sys;

GetLocalTime( &sys ); printf( \d:d:d.d

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构课程设计--哈希表实验报告(2)在线全文阅读。

数据结构课程设计--哈希表实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/402756.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: