📄 ch7_4.c
字号:
#include <stdio.h>
#define M 16
int h(int k)
{ return(k%13);
}
int slbxxcz(int t[],int k)
{ int i,j=0;
i=h(k);
while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]!=0))
j++;
i=(i+j)%M;
if(t[i]==k) return(i);
else return(-1);
}
int slbxxcr(int t[],int k)
{ int i,j=0;
i=h(k);
while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]>0))
j++;
if(j==M) return(0);
i=(i+j)%M;
if(t[i]<=0)
{ t[i]=k; return(1); }
if(t[i]==k) return(1);
}
int slbxxsc(int t[],int k)
{ int i,j=0;
i=h(k);
while((j<M)&&(t[(i+j)%M]!=k)&&(t[(i+j)%M]!=0))
j++;
i=(i+j)%M;
if(t[i]==k)
{ t[i]=-1; return(1); }
return(0);
}
void main()
{ int i,n=12;
int key[]={19,14,23,1,68,20,84,27,55,11,10,79};
static int hash_table[M];
for(i=0;i<n;i++)
slbxxcr(hash_table,key[i]);
printf("\n");
for(i=0;i<M;i++)
printf("%d ",hash_table[i]);
i=slbxxcz(hash_table,79);
if(i==-1)
printf("\nNot found");
else
printf("\n%d\n",i);
slbxxsc(hash_table,19);
slbxxsc(hash_table,27);
printf("\n");
for(i=0;i<M;i++)
printf("%d ",hash_table[i]);
i=slbxxcz(hash_table,27);
if(i==-1)
printf("\nNot found");
else
printf("\n%d\n",i);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -