アルゴリズムとプログラミング

基本情報技術者試験 科目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)
添字0123456789
box(空)ABCDEFGHI
next1507(空)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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「連結リストの構造とポインタ操作」で学ぶ

同じ知識の過去問