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