2015-04-08 2 views
1

В соответствии с documentation о том, как работает установка хеширования кукушки, если значение1 должно быть вставлено в таблицу1 в позиции h1 (key1) с использованием хеш-функции h1, а h1 (key1) уже занята, потому что (key2, value2) вставлена ​​так, что h1 (key2) = h1 (key1), то алгоритм хэша кукушки вычисляет h2 (key2) и пытается вставить значение2 в позицию h2 (key2) в таблице2. Этот процесс повторяется.Как работает установка хеширования кукушки?

Алгоритм поиска, как описано в:

function lookup(x) 
    return T1[h1(x)] = x ∨ T2[h2(x)] = x 
end 

Однако при поиске значение key2, значение2 может быть в h1 (key2) или h2 (key2). Если h1 (key1) = h1 (key2), то h1 (key1) может быть либо значением 1 (выселение произошло), либо значением2 (без выселения). Как алгоритм хэша кукушки знает, какую таблицу искать для value2?

ответ

1

Кажется, что код сначала возвращает значение в T2, а если это не удается, он возвращает значение в T1.

function lookup(x) 
    return T1[h1(x)] = x ∨ T2[h2(x)] = x 
end 
0

Только для выяснения причины: проверьте оба местоположения. Или вообще, все места, где key2, возможно, ушли.

Смежные вопросы