応用情報暗記無料で始める

双方向リストとは?そうほうこうりすと

双方向リストとは、連結リストのうち、各要素が次への参照だけでなく前への参照も持つもの。ある要素を指す参照が手元にあれば、その前の要素を先頭からたどり直さずに特定できるので、削除や直前への挿入が定数時間で済む。代わりに参照1本ぶんの領域が要素ごとに増える、という釣合いの上に成り立っている。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では1回出題されています。

応用情報技術者試験の頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

片方向リストは挿入・削除がポインタの張替えだけで済む点で配列に勝るが、前の要素を知る手段がないため、削除したい要素が分かっていても先頭から探し直さなければならない。そのぶん手続き全体がO(n)になり、挿入・削除が速いという利点が実際には出ない。双方向リストは、この穴を領域1本ぶんの追加で埋める設計である。

具体例

JavaのLinkedListやC++のstd::listは双方向リストで実装されており、イテレータの位置から前後どちらへも進める。OSのプロセス管理でも、実行可能状態のプロセスを双方向リストでつなぎ、任意の位置のプロセスをキューから外す操作を定数時間で行っている。

試験での引っ掛け

ポインタの張替えは前後2か所を必ず両方直す必要があり、片方だけ直す手順が誤答の選択肢として出る。先頭・末尾では相手側のポインタがナルになる(環状リストなら先頭と末尾がつながる)点、探索そのものは依然としてO(n)で速くなるのは削除・挿入の手続きだけである点も問われる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • ポインタの張替えは前後2か所を必ず両方直す必要があり、片方だけ直す手順が誤答の選択肢として出る。