📄 程序设计:哈希表的一个应用_数据结构与算法_数据结构算法_c语言_c 语言之家.htm
字号:
<TBODY>
<TR><!--<td width="20%" align="middle" valign="top" background="images/002.jpg" bordercolor="#e2ca9f"> </td>
<td width="80%">-->
<TD width="100%">
<TABLE border=0 borderColor=#e2ca9f cellPadding=0 cellSpacing=0
width="100%">
<TBODY>
<TR>
<TD align=middle vAlign=top width="95%">
<TABLE border=1 borderColor=#e2ca9f cellPadding=0 cellSpacing=0
width="100%">
<TBODY>
<TR>
<TD align=middle
background="程序设计:哈希表的一个应用_数据结构与算法_数据结构算法_C语言_C 语言之家.files/002.jpg"
borderColor=#e2ca9f vAlign=top width="69%">
<TABLE align=center border=0 cellPadding=0 cellSpacing=0
width="100%">
<TBODY>
<TR>
<TD height=40 width="100%"></TD></TR>
<TR>
<TD>
<FORM action=Readnews.asp?newsid=1522&id2=1522
method=post name=form1>
<CENTER><!-- <input type=submit name=aa value="点击关闭浮动图标" width=20 title="点击广告支持本站">--></CENTER></FORM></TD></TR>
<TR>
<TD align=middle bgColor=#dddddd height=20
style="FONT-SIZE: 18px" vAlign=bottom
width="85%"><STRONG><FONT color=#003399
size=4><B>程序设计:哈希表的一个应用 </B></FONT></STRONG></TD><BR></TR>
<TR>
<TD align=middle width="100%"><BR></TD></TR>
<TR>
<TD align=middle style="FONT-SIZE: 9pt"
width="100%">发表日期:2003年6月17日 出处:实习报告 作者:姚建飞 已经有2643位读者读过此文</TD></TR>
<TR>
<TD align=middle width="100%"><!--下面的这一句是设置阅读文本区的宽度-->
<TABLE align=center border=0 cellPadding=0 cellSpacing=0
style="TABLE-LAYOUT: fixed" width="90%">
<TBODY>
<TR>
<TD align=middle width="100%"></TD></TR>
<TR>
<TD style="WORD-WRAP: break-word"><FONT
class=news><BR>
<P>#include <stdio.h><BR>#include
<conio.h><BR>#include
<ctype.h><BR>#define L 50
/*定义哈希表长*/<BR>#define M 47
/*定义p值*/<BR>#define N 30
/*定义名单长*/<BR>char z[22];<BR>struct old{char
*name;char *py;int k;};<BR>struct old
oldlist[L];/*原始表*/<BR>struct hterm<BR>{ char
*name;char *py;<BR>int k;int si;<BR>};<BR>struct
hterm hlist[L];/*哈希表*/<BR>int i,adr,sum,d;<BR>char
ch1;<BR>float
average;<BR>/**********************************/<BR>void
chash()<BR>{for
(i=0;i<L;i++)<BR>
{hlist[i].name="";<BR>
hlist[i].py="";<BR>
hlist[i].k=0;<BR>
hlist[i].si=0;<BR>
};<BR> for
(i=0;i<N;i++)<BR> {
sum=0;<BR>
adr=(oldlist[i].k)%M;<BR>
d=adr;<BR>
if(hlist[adr].si==0)<BR>
{hlist[adr].k=oldlist[i].k;<BR>
hlist[adr].name=oldlist[i].name;<BR>
hlist[adr].py=oldlist[i].py;<BR>
hlist[adr].si=1;<BR>
}<BR>
else<BR>
{do<BR>
{d=(d+((oldlist[i].k))%10+1)%M;/*伪随机*/<BR>
sum=sum+1;<BR>
}<BR>
while
(hlist[d].k!=0);<BR>
hlist[d].k=oldlist[i].k;<BR>
hlist[d].name=oldlist[i].name;<BR>
hlist[d].py=oldlist[i].py;<BR>
hlist[d].si=sum+1;<BR>
}<BR> }<BR>}</P>
<P>/***************************************/<BR>void
findhlist()<BR>{ int s0;char r,g;<BR>
clrscr();/*清屏*/<BR> for
(r=0;r<20;r++){z[r]=0;};<BR>
gotoxy(1,1);printf("查找:copyright by 姚建飞
2003.6");<BR> gotoxy(5,10);printf("请拼音后回车!");<BR> gotoxy(5,12);scanf("%s",z);<BR>
s0=0;<BR> for
(r=0;r<20;r++){s0=z[r]+s0;};<BR>
gotoxy(5,13);
printf("%d",s0);<BR> /*for
(i=0;i<L;i++)*/<BR>
sum=1;<BR>
adr=s0%M;<BR>
d=adr;<BR>
if(hlist[adr].k==s0)<BR>
{<BR>
gotoxy(18,18);printf("
");<BR>
gotoxy(18,18);printf("%s",hlist[d].name);<BR>
gotoxy(18,19);printf("%s",hlist[d].py);<BR>
gotoxy(18,20);<BR>
printf("搜索 %d
次",sum);<BR>
getch();<BR>
}<BR>
else<BR> {if
(hlist[adr].k==0)<BR>
{gotoxy
(18,18);<BR>
printf("无记录!
");<BR>
getch();<BR>
}<BR>
else<BR>
{g=0;<BR>
for
(i=0;g==0;i++)<BR>
{d=(d+s0%10+1)%M;
/*伪随机*/<BR>
sum=sum+1;<BR>
if
(hlist[d].k==0)<BR>
{gotoxy
(18,18);<BR>
printf("无记录!
");<BR>
g=1;getch();<BR>
};<BR>
gotoxy(18,18);<BR>
printf("%s",hlist[d].name);<BR>
gotoxy(18,19);<BR>
printf("%s",hlist[d].py);<BR>
gotoxy(18,20);<BR>
printf("搜索 %d
次",sum);<BR>
getch();<BR>
if
(hlist[d].k==s0)<BR>
{
g=1;<BR>
gotoxy(18,21);<BR>
printf("搜索 %d
次成功!",sum);<BR>
getch();<BR>
};<BR>
};</P>
<P>
};</P>
<P> };</P>
<P>}</P>
<P><BR>/***************************************/<BR>void
inp() /*输入表*/<BR>{<BR> char *f;<BR> int
r,s0;</P>
<P> oldlist[0].name="桂芳芳";oldlist[0].py="guifanfan";<BR> oldlist[1].name="姚建飞";oldlist[1].py="yaojianfei";<BR> oldlist[2].name="杨扬";oldlist[2].py="yangyang";<BR> oldlist[3].name="朱玉环";oldlist[3].py="zhuyuhuang";<BR> oldlist[5].name="陈曦";oldlist[5].py="chenxi";<BR> oldlist[6].name="张雷";oldlist[6].py="zhanglei";<BR> oldlist[7].name="盛永海";oldlist[7].py="shenyonghai";<BR> oldlist[8].name="陈道全";oldlist[8].py="chengdaoquan";<BR> oldlist[9].name="陆道清";oldlist[9].py="ludaoqing";<BR> oldlist[10].name="龚云祥";oldlist[10].py="gongyunxiang";<BR> oldlist[11].name="孙振兴";oldlist[11].py="sunzhenxing";<BR> oldlist[12].name="孙容飞";oldlist[12].py="sunrongfei";<BR> oldlist[13].name="孙明龙";oldlist[13].py="sunminglong";<BR> oldlist[14].name="张浩";oldlist[14].py="zhanghao";<BR> oldlist[15].name="田苗";oldlist[15].py="tianmiao";<BR> oldlist[16].name="姚建中";oldlist[16].py="yaojianzhong";<BR> oldlist[17].name="姚建清";oldlist[17].py="yaojianqing";<BR> oldlist[18].name="姚建华";oldlist[18].py="yaojianhua";<BR> oldlist[19].name="张海峰";oldlist[19].py="yaohaifeng";<BR> oldlist[20].name="陈言号";oldlist[20].py="chengyanhao";<BR> oldlist[21].name="姚秋锋";oldlist[21].py="yaoqiufeng";<BR> oldlist[22].name="钱鹏程";oldlist[22].py="qianpengcheng";<BR> oldlist[23].name="姚海峰";oldlist[23].py="yaohaifeng";<BR> oldlist[24].name="卞艳";oldlist[24].py="bianyan";<BR> oldlist[25].name="凌蕾";oldlist[25].py="linglei";<BR> oldlist[26].name="李伟";oldlist[26].py="liwei";<BR> oldlist[27].name="黄海燕";oldlist[27].py="huanhaiyan";<BR> oldlist[28].name="刘殿琴";oldlist[28].py="liudianqin";<BR> oldlist[29].name="李云";oldlist[29].py="liyun";</P>
<P>/*<BR>请在此输入数据,同时修改程序开头的 M L N</P>
<P> </P>
<P> </P>
<P>*/<BR>for
(i=0;i<N;i++)<BR>
{<BR> s0=0;<BR>
f=oldlist[i].py;</P>
<P> for
(r=0;*(f+r) != '\0';r++){s0=*(f+r)+s0;};</P>
<P>
oldlist[i].k=s0;</P>
<P><BR> };</P>
<P>}</P>
<P> </P>
<P>/****************************************/<BR>void
dhash() /*显示哈希表*/<BR>{ char
LON=17;<BR> clrscr();<BR>
if (LON>L){LON=L;};<BR>
gotoxy(1,1);printf("哈希表:copyright by 姚建飞
2003.6");<BR>
gotoxy(1,2);printf("地址:");<BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -