竹子听

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语句:因为外面取反,所以只要里面有一个为假,就运行;或理解成退出条件为满足以上所有条件     

为什么要把整个表走完呢?因为如果冲突是往后放的呀,只要找到第一个为空就可以停止了。

评论