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

基本情報技術者試験 科目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 ] の値が空白である要素はリストに連結されていない。
添字0123456789
box(空白)ABCDEFGHI
添字0123456789
next1507(空白)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 回(公開問題での観測値)

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

同じ知識の過去問