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

平成30年度 春期 基本情報技術者試験 午前 問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 の表。box: 0=(空白),1=A,2=B,3=C,4=D,5=E,6=F,7=G,8=H,9=I。next: 0=1,1=5,2=0,3=7,4=(空白),5=3,6=(空白),7=2,8=(空白),9=(空白)。
  • ア 3
  • イ 5
  • ウ 7
  • エ 8

出典:平成30年度 春期 基本情報技術者試験 午前 問6

答えと解説を見る

正解:ウ

覚える知識

配列で実現したリストへの要素挿入(next更新)

連結リストへの挿入では、新要素のnextに挿入位置の次要素の番号を入れ、前要素のnextを新要素の番号へ書き換える。

この問題で必要なこと

next[0]=1→1(A)→5(E)→3(C)→7(G)→2(B)→0 の順。3番目はC(3)、4番目はG(7)。Hの要素8を挿入するとnext[3]=8、next[8]=7(元の次の番号)となる。

ひっかけ

新要素のnextに前要素の番号を入れてしまう、リストの順序を添字順と取り違える。

この知識の出題:本試験系 1 回・免除試験 2 回(公開問題での観測値)

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

同じ知識の過去問