哈希表的一个应用

文章作者 100test 发表时间 2008:01:04 13:00:58
来源 100Test.Com百考试题网


#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)) 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 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().
}.
}.

}.

}.

}



相关文章


Acce 2003开发者扩展工具集概述
用C Builder实现Windows2000的Me enger
Acce 数据库安全的几个问题
Win2K下的Api函数的拦截
哈希表的一个应用
删除记录,判断记录位置
Acce 如何维护表的参照完整性
实现窗体的渐变背景
怎样在ACCE 表中隐藏列
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛