テクノロジ系 / アルゴリズムとプログラミング
双方向リスト
双方向リストは、各要素が前の要素と次の要素への参照を持つ線形リストです。
もう少し詳しく
単方向リストよりも前後への移動がしやすい一方、挿入や削除ではnextとprevの両方を正しく更新する必要があります。参照の更新漏れがあると、片方向からはたどれても逆方向からたどれない不整合が起きます。
試験での見方
例:A⇔B⇔CでBを削除するなら、AのnextをCへ、CのprevをAへ向けます。
テクノロジ系 / アルゴリズムとプログラミング
双方向リストは、各要素が前の要素と次の要素への参照を持つ線形リストです。
単方向リストよりも前後への移動がしやすい一方、挿入や削除ではnextとprevの両方を正しく更新する必要があります。参照の更新漏れがあると、片方向からはたどれても逆方向からたどれない不整合が起きます。
例:A⇔B⇔CでBを削除するなら、AのnextをCへ、CのprevをAへ向けます。
双方向リストの問題では、前方向と後方向のリンクを両方確認します。片方だけ更新する選択肢は不整合を起こすため注意しましょう。