大二实验课时做的
...
void CHash() /*创建哈希表*/
{int i,adr,sum,k;
hl.sizeindex=L;
for(i=0;i<L;i++) /*哈希表清空*/
{hl.elem[i].name="";
hl.elem[i].sn=0;
}
for(i=0;i<N;i++) /*输入N个元素*/
{sum=1;
k=Key(l[i].name); /*求关键字*/
adr=Adr(k); /*求哈希表地址*/
if(!hl.elem[adr].sn) /*判断地址单元是否为空*/
{hl.elem[adr].name=l[i].name;
hl.elem[adr].sn=sum;
hl.count++;
}
else /*地址冲突,则查找下一个地址*/
{do
{di=suiji();
k+=di;
adr=Adr(k);
sum=sum+1;
}while(hl.elem[adr].sn!=0);
hl.elem[adr].name=l[i].name;
hl.elem[adr].sn=sum;
hl.count++;
}
}
}