問題
ハッシュ表における衝突(コリジョン)解決法のうち、チェイン法(連鎖法)の特徴として正しいものはどれか。
選択肢
- 1別のハッシュ表に再度ハッシュをかける
- 2衝突した要素を連結リストで同じバケットに格納する
- 3衝突したら次の空きバケットを線形に探索する
- 4ハッシュ関数を動的に変更する
正解
2. 衝突した要素を連結リストで同じバケットに格納する
詳しい解説を見る解説を閉じる
解説
チェイン法(連鎖法)は、ハッシュ値が衝突した複数の要素を、同じバケットに連結リストなどでつないで格納する方式である。表の外にリストを伸ばせるため、要素数がバケット数を超えても動作し、削除処理も比較的容易という特徴がある。衝突したら次の空きバケットを線形に探索するのはオープンアドレス法(線形探査法)の説明で、こちらは表内の別の位置に格納するため、データが連続して固まるクラスタリングが発生しやすい。別のハッシュ表に再度ハッシュをかける、ハッシュ関数を動的に変更するという記述は、チェイン法の定義とは異なる。「チェイン=鎖=同じ場所にリストでつなぐ」「オープンアドレス=空いている別の住所を探す」と対比して覚えると混同しない。
一問一答
全400問を繰り返し学習