hash1
int find(DataType key)
//进行查找
{
int address = getHashAddress(key);//哈希函数
while( !(hashTable[address].isNull == 0 && hashTable[address].data == key && address<M))
{
address++;
}
if( address == M)
address = -1;
return address;
}
while语句:因为外面取反,所以只要里面有一个为假,就运行;或理解成退出条件为满足以上所有条件
为什么要把整个表走完呢?因为如果冲突是往后放的呀,只要找到第一个为空就可以停止了。
评论