応用情報 午前ラボ

学習の画面へ

配列で実現した双方向リストへの挿入

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

双方向リストを三つの一次元配列 elem[i],next[i],prev[i] の組で実現する。双方向リストが図の状態のとき,要素 D の次に要素 C を挿入した後の next[6],prev[6] の値の組合せはどれか。ここで,双方向リストは次のように表現する。

図

  1. ア next[6] = 2,prev[6] = 3
  2. イ next[6] = 3,prev[6] = 4
  3. ウ next[6] = 5,prev[6] = 3
  4. エ next[6] = 5,prev[6] = 4
正解と解説を見る

正解: ウ

ポイント

  1. 図のリストを Head からたどると、1 (A) → 4 (B) → 3 (D) → 5 (E) → 2 (F) の順です。
  2. C は配列の末尾 (要素番号 6) に追加し、D (3) と E (5) の間に入れます。
  3. C の次は E なので next[6] = 5、C の前は D なので prev[6] = 3 です。
    (あわせて next[3] = 6、prev[5] = 6 に書き換えます)

「アルゴリズムとプログラミング」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)