Изменения

Перейти к: навигация, поиск

Разрешение коллизий

225 байт добавлено, 23:51, 27 мая 2015
Реализация с удалением
'''Вставка'''
<pre> '''function''' add('''Item''' item) x = h1(item.key) y = h2(item.key) '''for ''' (i = 0; i < m; i++) '''if ''' table[x] == null || deleted[x] table[x] = item deleted[x] = false '''return ''' x = (x + y) mod m table.resize() //ошибка, требуется увеличить размер таблицы</pre> 
'''Поиск'''
<pre> '''Item''' search('''Item'''key) x = h1(key) y = h2(key) '''for ''' (i = 0; i < m; i++) '''if ''' table[x] != null '''if ''' table[x].key == key && !deleted[x] '''return ''' table[x] '''else''' '''return ''' null x = (x + y) mod m '''return ''' null</pre>
'''Удаление'''
<pre> '''function''' remove('''Item''' key) x = h1(key) y = h2(key) '''for ''' (i = 0; i < m; i++) '''if ''' table[x] != null '''if ''' table[x].key == key deleted[x] = true '''else ''' '''return''' x = (x + y) mod m</pre>
== Разрешение коллизий с помощью списков ==
106
правок

Навигация