0001 /****************************************************************************************** 0002 * 沿关键码k的试探链,找到首个可用空桶;实践中有多种试探策略可选,这里仅以线性试探为例 0003 ******************************************************************************************/ 0004 template <typename K, typename V> int Hashtable<K, V>::probe4Free ( const K& k ) { 0005 int r = hashCode ( k ) % M; //按除余法确定试探链起点 0006 while ( ht[r] ) r = ( r + 1 ) % M; //线性试探,直到首个空桶(无论是否带有懒惰删除标记) 0007 return r; //只要有空桶,线性试探迟早能找到 0008 }