次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。
関数 add は,引数で指定された正の整数 value を大域の整数型の配列 hashArray に格納する。格納できた場合は true を返し,格納できなかった場合は false を返す。ここで,整数 value を hashArray のどの要素に格納すべきかを,関数 calcHash1 及び calcHash2 を利用して決める。
手続 test は,関数 add を呼び出して,hashArray に正の整数を格納する。手続 test の処理が終了した直後の hashArray の内容は, である。
〔プログラム〕
大域: 整数型の配列: hashArray
◯論理型: add(整数型: value)
整数型: i ← calcHash1(value)
if (hashArray[i] = -1)
hashArray[i] ← value
return true
else
i ← calcHash2(value)
if (hashArray[i] = -1)
hashArray[i] ← value
return true
endif
endif
return false
◯整数型: calcHash1(整数型: value)
return (value mod hashArrayの要素数) + 1
◯整数型: calcHash2(整数型: value)
return ((value + 3) mod hashArrayの要素数) + 1
◯test()
hashArray ← {5個の -1}
add(3)
add(18)
add(11)
解答群
- {-1, 3, -1, 18, 11}
- {-1, 11, -1, 3, -1}
- {-1, 11, -1, 18, -1}
- {-1, 18, -1, 3, 11}
- {-1, 18, 11, 3, -1}
解答
エ
解説
ー