No.72 格納アドレスが1~6の範囲の直接編成ファイルにおいて,次の条件でデータを格納した場合,アドレス1に格納されているデータのキー値はどれか。
〔条件〕キー値が3,4,8,(***),14,18の順でデータを格納する。
データのキー値を5で割った余りに1を加えた値を格納アドレスにする。
格納アドレスに既にデータがある場合には,次のアドレスに格納する。
これを格納できるまで繰り返す。
最終アドレスの次は先頭とする。
初期状態では,ファイルは何も格納されていない。
〔条件〕キー値が3,4,8,(***),14,18の順でデータを格納する。
データのキー値を5で割った余りに1を加えた値を格納アドレスにする。
格納アドレスに既にデータがある場合には,次のアドレスに格納する。
これを格納できるまで繰り返す。
最終アドレスの次は先頭とする。
初期状態では,ファイルは何も格納されていない。
⭕️
❌
💾
🖊 | ☑️ |
⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
各キー値から格納アドレスを計算し、データが格納される位置を順番に考えていきます。解説中の図は左からアドレス1,2,…,6とします。
[キー値 3]
3÷5 の余りである3に1を加えたアドレス4に格納されます。
3
[キー値 4]
4÷5 の余りである4に1を加えたアドレス5に格納されます。
34
[キー値 8]
8÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため〔条件〕に従い2つ後の位置に格納されます。
348
[キー値 13]
13÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため3つ後の位置に格納されます。(先頭に戻る)
13 348
[キー値 14]
14÷5 の余りである4に1を加えたアドレス5が格納位置ですが、既にデータが存在するため3つ後の位置に格納されます。(先頭から2つ目)
1314 348
[キー値 18]
18÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため残る1つのアドレスに格納されます。
131418348
したがってアドレス1に格納されるデータのキー値は13になります。
[キー値 3]
3÷5 の余りである3に1を加えたアドレス4に格納されます。
3
[キー値 4]
4÷5 の余りである4に1を加えたアドレス5に格納されます。
34
[キー値 8]
8÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため〔条件〕に従い2つ後の位置に格納されます。
348
[キー値 13]
13÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため3つ後の位置に格納されます。(先頭に戻る)
13 348
[キー値 14]
14÷5 の余りである4に1を加えたアドレス5が格納位置ですが、既にデータが存在するため3つ後の位置に格納されます。(先頭から2つ目)
1314 348
[キー値 18]
18÷5 の余りである3に1を加えたアドレス4が格納位置ですが、既にデータが存在するため残る1つのアドレスに格納されます。
131418348
したがってアドレス1に格納されるデータのキー値は13になります。
💾
✔️
[[ d.CommentTxt ]] |
< | > |
🥇 |