2017-03-22 6 views
0

ハッシュテーブルにいくつかの番号を格納する必要があります。衝突は、閉じたハッシュ方法( チェーニングなし)によって処理されます。テーブルには4つのバケットがあり、ハッシュ関数はKmodNです(Nはバケットの数)。 項目を格納するコマンドは以下のとおりであり、指定された順序で実行されます。 番号8のバケット(インデックス)はどのバケットに格納されますか?ハッシュテーブルを格納するときのインデックスの指定方法は?

hashtable.add(2) 
hashtable.add(4) 
hashtable.add(6) 
hashtable.add(8) 

私は0と一緒に行くと思いますが、簡単だと思いますか?

+0

バケツのサイズも知っていなければならないと思います。 https://en.wikipedia.org/wiki/Hash_tableを参照してください。 –

答えて

0

閉鎖されたハッシュ方法は、1つのアイテム/バケットのみを意味します。行われた連鎖はありません。したがって、hashtable.add(2)は、バケットposition 0を占有します。

hashtable.add(8)は、バケットにハッシュするposition 0です。これはの衝突です。

閉鎖型ハッシングでは、他のハッシュ関数によって与えられた他の位置を試してみます。空白の位置が見つかった場合、その位置にアイテムを埋め込み、空白の位置が見つからない場合、ハッシュテーブルがいっぱいになると宣言します。

リハッシュ機能がposition 3にハッシュされている場合、そのバケットに移動します。そうでない場合、ハッシュテーブルがいっぱいになると宣言されます。しかし、あなたが再ハッシュ戦略を述べていない限り、何のことも確実に言えることはありません。

関連する問題