本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成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 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


正解


解説

挿入前の状態は、
next[0] = 1、box[1] = A
next[1] = 5、box[5] = E
next[5] = 3、box[3] = C
next[3] = 7、box[7] = G
next[7] = 2、box[2] = B
next[2] = 0
で、値は“AECGB”である。

3番目と4番目の間、つまりCとGの間にHを入れるには、
next[0] =1、box[1] = A
next[1] =5、box[5] = E
next[5] =3、box[3] = C
next[3] =8、box[8] = H
next[8] =7、box[7] = G
next[7] =2、box[2] = B
next[2] = 0
とする必要がある。

従って、next[8] =7 である。

問5 目次 問7