0001 /****************************************************************************************** 0002 * 沿关键码k的试探链,找到与之匹配的桶;实践中有多种试探策略可选,这里仅以线性试探为例 0003 ******************************************************************************************/ 0004 template <typename K, typename V> int Hashtable<K, V>::probe4Hit ( const K& k ) { 0005 int r = hashCode( k ) % M; //按除余法确定试探链起点 0006 while ( ( ht[r] && ( k != ht[r]->key ) ) || ( !ht[r] && removed->test(r) ) ) 0007 r = ( r + 1 ) % M; //线性试探(跳过带懒惰删除标记的桶) 0008 return r; //调用者根据ht[r]是否为空及其内容,即可判断查找是否成功 0009 }