連結リストには単方向リストだけでなく様々なバリエーションがある。たとえば Java の LinkedList は双方向リストとして実装されている。その他にも単方向・双方向な循環連結リスト、メモリ効率二重連結リストなどがある。
単方向リストは次のノードへの参照:next しかもたなかったが、双方向連結リストは前のノード:prev への参照も持つ。
↓ こんなやつ
☆ 次の性質を利用して双方向リストを実現している。
X⊕X=0 X⊕0=X X⊕Y=Y⊕X (X⊕Y)⊕Z=X⊕(Y⊕Z)
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです