CH7_4.C
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
- #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%dn",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%dn",i);
- }