アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問7
リストを二つの 1 次元配列で実現する。配列要素 box[ i ] と next[ i ] の対がリストの一つの要素に対応し,box[ i ] に要素の値が入り,next[ i ] に次の要素の番号が入る。配列が図の状態の場合,リストの 3 番目と 4 番目との間に値が H である要素を挿入したときの next[ 8 ] の値はどれか。ここで,next[ 0 ] がリストの先頭(1 番目)の要素を指し,next[ i ] の値が 0 である要素はリストの最後を示し,next[ i ] の値が空白である要素はリストに連結されていない。
| 添字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| box | (空白) | A | B | C | D | E | F | G | H | I |
| 添字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| next | 1 | 5 | 0 | 7 | (空白) | 3 | (空白) | 2 | (空白) | (空白) |
- ア 3
- イ 5
- ウ 7
- エ 8
出典:基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問7
答えと解説を見る
正解:ウ
覚える知識
配列で実現したリストへの要素挿入(next更新)
リストへの挿入は、新要素のnextに挿入位置の後続要素の添字を設定し、前の要素のnextを新要素に付け替える。
この問題で必要なこと
リストの順は 1→5→3→7→2。3番目(3)と4番目(7)の間に挿入するので、新要素H(添字8)のnextは後続の4番目の添字7にする。
ひっかけ
3番目を指す添字や、前の要素のnext(3)と取り違えて新要素に設定する誤りを誘う。
この知識の出題:本試験系 1 回・免除試験 2 回(公開問題での観測値)