我正在读取一个包含127个键的文件。我需要使用双散列将密钥插入哈希表。所以这是我的去处,这里我取一个整数值(键)。如果该哈希表的索引为null,则插入密钥,否则如果存在冲突。我使用这个哈希函数g(k)= TABLE_SIZE - (key%TABLE_SIZE)。使用无限循环,以便如果使用g(k)函数发生碰撞,则执行2 * g(k),3 * g(k)等等。我不确定我做错了什么,因为当我在Putty上运行此代码时,我得到了一个"分段错误(Core Dumped)"。我在这里想念的是什么?
void doubleHashing(int key){
index = key % size;
int iterations = 0;
for(;;){
if(hashTable[index] == '\0'){
hashTable[index] = key;
break;
}
else if(hashTable[index] != '\0'){
iterations++;
index = (size - (key % size));
index *= iterations;
}
}
}
答案 0 :(得分:0)
我首先怀疑你的hashTable未正确初始化为0,或者你有足够的碰撞使你的碰撞避免超过你的界限。