アルゴリズムとプログラミング

基本情報技術者試験ハッシュ表の衝突処理におけるチェイン法(連鎖法)の説明

テクノロジ系アルゴリズムとプログラミング難易度:normal
ハッシュ表の衝突処理におけるチェイン法(連鎖法)の説明として最も適切なものはどれか。
衝突が起きたら表の別の空きスロットを規則的に探し、データ自体を表内に格納する
同じハッシュ値のデータを連結リストでつなぎ、各スロットがそのリストの先頭を指す
衝突時にハッシュ関数を使わず先頭から順に空きを線形探索して全件比較する
衝突が起きた瞬間に表全体を2倍に拡張し、全データを必ず再配置してから格納する
正解
イ.同じハッシュ値のデータを連結リストでつなぎ、各スロットがそのリストの先頭を指す

チェイン法は各スロットに連結リストを持たせ、ハッシュ値が衝突したデータを同じリストにつなぐ。スロットはリストの先頭を指し、探索時はそのリストをたどるため正しい。

?選択肢ごとの解説

ア ×衝突時に表内の別の空きスロットを規則的に探してデータを表内に置くのはオープンアドレス法(開番地法)の説明であり、チェイン法とは別方式である。
イ ○チェイン法は各スロットに連結リストを持たせ、ハッシュ値が衝突したデータを同じリストにつなぐ。スロットはリストの先頭を指し、探索時はそのリストをたどるため正しい。
ウ ×ハッシュ関数を使わず先頭から線形探索して全件比較するのは単なる線形探索であり、ハッシュ値で振り分けるチェイン法の説明ではない。
エ ×衝突のたびに表を2倍拡張して全再配置するのはリハッシュ(拡張)の話で、衝突を都度連結リストで吸収するチェイン法の基本動作とは異なる。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-a3-0128

【基本情報技術者試験】ハッシュ表の衝突処理におけるチェイン法(連鎖法)の説明|正解「同じハッシュ値のデータを連結…」|ukamiru 過去問