设为首页 加入收藏

TOP

哈希表的一个应用
2014-11-23 18:55:23 】 浏览:3440
Tags:哈希 一个 应用

#include
#include
#include
#define L 50 /*定义哈希表长*/
#define M 47 /*定义p值*/
#define N 30 /*定义名单长*/
char z[22];
struct old{char *name;char *py;int k;};
struct old oldlist[L];/*原始表*/
struct hterm
{ char *name;char *py;
int k;int si;
};
struct hterm hlist[L];/*哈希表*/
int i,adr,sum,d;
char ch1;
float average;
/**********************************/
void chash()
{for (i=0;i {hlist[i].name="";
hlist[i].py="";
hlist[i].k=0;
hlist[i].si=0;
};
for (i=0;i { sum=0;
adr=(oldlist[i].k)%M;
d=adr;
if(hlist[adr].si==0)
{hlist[adr].k=oldlist[i].k;
hlist[adr].name=oldlist[i].name;
hlist[adr].py=oldlist[i].py;
hlist[adr].si=1;
}
else
{do
{d=(d+((oldlist[i].k))%10+1)%M;/*伪随机*/
sum=sum+1;
}
while (hlist[d].k!=0);
hlist[d].k=oldlist[i].k;
hlist[d].name=oldlist[i].name;
hlist[d].py=oldlist[i].py;
hlist[d].si=sum+1;
}
}
}


/***************************************/
void findhlist()
{ int s0;char r,g;
clrscr();/*清屏*/
for (r=0;r<20;r++){z[r]=0;};
gotoxy(1,1);printf("查找:copyright by 姚建飞 2003.6");
gotoxy(5,10);printf("请拼音后回车!");
gotoxy(5,12);scanf("%s",z);
s0=0;
for (r=0;r<20;r++){s0=z[r]+s0;};
gotoxy(5,13); printf("%d",s0);
/*for (i=0;i sum=1;
adr=s0%M;
d=adr;
if(hlist[adr].k==s0)
{
gotoxy(18,18);printf(" ");
gotoxy(18,18);printf("%s",hlist[d].name);
gotoxy(18,19);printf("%s",hlist[d].py);
gotoxy(18,20);
printf("搜索 %d 次",sum);
getch();
}
else
{if (hlist[adr].k==0)
{gotoxy (18,18);
printf("无记录! ");
getch();
}
else
{g=0;
for (i=0;g==0;i++)
{d=(d+s0%10+1)%M; /*伪随机*/
sum=sum+1;
if (hlist[d].k==0)
{gotoxy (18,18);
printf("无记录! ");
g=1;getch();
};
gotoxy(18,18);
printf("%s",hlist[d].name);
gotoxy(18,19);
printf("%s",hlist[d].py);
gotoxy(18,20);
printf("搜索 %d 次",sum);
getch();
if (hlist[d].k==s0)
{ g=1;
gotoxy(18,21);
printf("搜索 %d 次成功!",sum);
getch();
};
};


};


};


}



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇高手讲解:探索C++的秘密之详解ex.. 下一篇建立子窗口并处理其反馈的消息

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目