メインコンテンツへ
アルゴリズムとプログラミングアルゴリズムとデータ構造

サイズ7のハッシュテーブル(インデックス0〜6)に線形探査法でキー15, 22, 8, 29を順番に挿入する。ハッシュ関数 h(k) = k mod 7 を使用する。挿入後のテーブルの状態として正しいものはどれか。

ア.インデックス[0]=空,[1]=22,[2]=15,[3]=8,[4]=29,[5]=空,[6]=空
イ.インデックス[0]=29,[1]=15,[2]=22,[3]=8,[4]=空,[5]=空,[6]=空
ウ.インデックス[0]=空,[1]=15,[2]=22,[3]=8,[4]=29,[5]=空,[6]=空正解
エ.インデックス[0]=空,[1]=15,[2]=8,[3]=22,[4]=29,[5]=空,[6]=空

解説

ハッシュテーブルの線形探査は「駐車場の空きスペース探し」。まず指定の場所へ、埋まっていたら1つずつ前へ進む。

なぜ ウ が正解か

15 mod 7=1 → スロット1に格納。22 mod 7=1 → スロット1は埋まり → スロット2に格納。8 mod 7=1 → スロット1,2は埋まり → スロット3に格納。29 mod 7=1 → スロット1,2,3は埋まり → スロット4に格納。結果: [空,15,22,8,29,空,空]。

なぜ ア は間違いか

インデックス[1]=22,[2]=15 は誤り。22はスロット2に先に入り、15はスロット1に最初に格納される。15→22→8→29の順序でスロット1,2,3,4に入る。

なぜ イ は間違いか

インデックス0に29が格納されるのは誤り。29はスロット4まで線形探査で進む。

なぜ エ は間違いか

インデックス[2]=8,[3]=22 は誤り。22はスロット2に先に入り、8はスロット3に入る。

出典: AI生成問題(学習用)