Position Find(HashTable H, ElementType Key)
{
Position P = Hash(Key, H->TableSize);/*位置*/
int i = 0;
while (H->Cells[P].Data != Key && H->Cells[P].Info != Empty)/*有空的或者是相等*/
{
P = (P + 1) % H->TableSize;
i++;
if (i == H->TableSize)
{
break;
}
}
if (i == H->TableSize)
{
return ERROR;
}
else
{
return P;
}
}
这种查找方式里,如果HashTable的一个位置装了一个元素,即使删除了,也不可以装别的数值的元素了(其实这样不太好 2022/2/22补充:这是对于不装入重复元素而进行的妥协).HashTable对于一个元素只能装一次.