問題プレビューID: edc1075c

問 20

格納アドレスが 1〜6 の範囲の直接編成ファイルにおいて,次の条件でデータを格納した場合,アドレス 1 に格納されているデータのキー値はどれか。

〔条件〕

(1) キー値が 3, 4, 8, 13, 14, 18 の順でデータを格納する。 (2) データのキー値を 5 で割った余りに 1 を加えた値を格納アドレスにする。 (3) 格納アドレスに既にデータがある場合には,次のアドレスに格納する。これを格納できるまで繰り返す。最終アドレスの次は先頭とする。 (4) 初期状態では,ファイルは何も格納されていない。

解説

キー値を 5 で割った余りに 1 を加えた値を格納アドレスとし,衝突時は次のアドレスに順に格納します。

  • キー値 3: 3 mod 5+1=43 \bmod 5 + 1 = 4 → アドレス 4 に格納
  • キー値 4: 4 mod 5+1=54 \bmod 5 + 1 = 5 → アドレス 5 に格納
  • キー値 8: 8 mod 5+1=48 \bmod 5 + 1 = 4 → アドレス 4, 5 が使用中なのでアドレス 6 に格納
  • キー値 13: 13 mod 5+1=413 \bmod 5 + 1 = 4 → アドレス 4, 5, 6 が使用中なのでアドレス 1 に格納
  • キー値 14: 14 mod 5+1=514 \bmod 5 + 1 = 5 → アドレス 5, 6, 1 が使用中なのでアドレス 2 に格納
  • キー値 18: 18 mod 5+1=418 \bmod 5 + 1 = 4 → アドレス 4, 5, 6, 1, 2 が使用中なのでアドレス 3 に格納

したがって,アドレス 1 に格納されているデータのキー値は 13 であり,正解は「イ」です。