0001 /****************************************************************************************** 0002 * 沿关键码k对应的查找链,找到首个可用空桶(仅供插入词条时调用) 0003 * 试探策略多种多样,可灵活选取;这里仅以线性试探策略为例 0004 ******************************************************************************************/ 0005 template <typename K, typename V> int Hashtable<K, V>::probe4Free ( const K& k ) { 0006 int r = hashCode ( k ) % M; //从起始桶(按除余法确定)出发 0007 while ( ht[r] ) r = ( r + 1 ) % M; //沿查找链逐桶试探,直到首个空桶(无论是否带有懒惰删除标记) 0008 return r; //为保证空桶总能找到,装填因子及散列表长需要合理设置 0009 }