双方向リストを三つの一次元配列 elem[i],next[i],prev[i] の組で実現する。elem[i] に値,next[i] に次の要素の要素番号,prev[i] に前の要素の要素番号を設定する。next[i],prev[i] が 0 の要素はそれぞれ末尾,先頭を表す。先頭・末尾の要素番号は変数 Head,Tail に設定する。新しい要素は配列の末尾(要素番号 6)に追加する。双方向リストが次の状態のとき,要素 D の次に要素 C を挿入した後の next[6],prev[6] の値の組合せはどれか。 要素番号 : 1 2 3 4 5 elem : A F D B E next : 4 0 5 3 2 prev : 0 5 4 1 3 Head=1,Tail=2

テクノロジ系・一部改変

ア next[6]=2,prev[6]=3

なぜ違う: next[6] は E の要素番号 5 で、2(F)ではない。

イ next[6]=3,prev[6]=4

なぜ違う: C の前は D(3)、次は E(5) で、値が合わない。

ウ next[6]=5,prev[6]=3
エ next[6]=5,prev[6]=4

なぜ違う: prev[6] は D の要素番号 3 で、4(B)ではない。

正解: ウ

要点: リストは A→B→D→E→F。D(番号3)の後にC(番号6)を挿入→next[6]=E(5)、prev[6]=D(3)。

Head=1 から next をたどると A(1)→B(4)→D(3)→E(5)→F(2) の順。要素 D は要素番号 3 で、その次は E(5)。D の直後に C(要素番号 6)を挿入すると、C の次は E、C の前は D になるので next[6]=5、prev[6]=3。

この問題に出てくる用語

関連キーワード: 双方向リスト・配列・データ構造

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

応用情報技術者の学習アプリ(応用情報トレ)

出典:令和5年度 秋期 応用情報技術者試験 午前 問5