class HashTable:
key # サイズNの表
h1(k):
return k mod N # key をNで割った余り
h2(k):
return 1 + (k mod (N-1))
# ハッシュ関数
hash(k, i):
return (h1(k) + i*h2(k)) mod N
# キーkを挿入する
insert(k):
i ← 0 # 衝突回数
while True:
pos ← hash(k, i)
if key[pos]が空いている:
key[pos] ← k
return pos # 場所を返して終了
else:
i++ # 空いていない場合は衝突回数を加算して再試行