直接放代码:
void inserthash(int hash[],itn m,int data) //将关键字data插入哈希表hash中
{
int i;
i=data%13; //计算哈希地址
while(hash[i]) //如果该元素位置被占用
i=(++i)%m; //线性探测法解决冲突
hash[i]=data;
}
void createhash(int hash[],int m,int data[],int n)
{
int i;
for(i=0;i<n;i++) //循环将原始数据保存到哈希表中
inserthash(hash,m,data[i]);
}
int hashsearch(int hash[],int m,int key) //在大小为m的哈希表中 找key值的下标
{
int i;
i=key%13; //计算哈西地址
while(hash[i]&&hash[i]!=key)//怕段是否冲突
i=(++i)%m; //线性探测法解决冲突
if(hash[i]==0) //查找到开放单元,表示查找失败
return -1;
else
return i;
}