リストを二つの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 |