最終更新日:2026年7月13日
fe fe-technology data-structure algorithm
まず結論
連結リストとは、各要素が次の要素への参照を持ち、順番につながっているデータ構造です。
基本情報技術者試験では、次の切り分けが重要です。
次の要素だけをたどる
→ 単方向連結リスト
前後どちらにもたどれる
→ 双方向連結リスト
配列のように連続した領域へ並べるのではなく、参照によって要素同士をつなぎます。
直感的な説明
連結リストは、数珠つなぎになったカードをイメージすると分かりやすいです。
各カードには、データと次のカードの場所が書かれています。
[10 | 次へ] → [20 | 次へ] → [30 | 終端]
先頭から順番に「次へ」をたどることで、目的の要素へ進みます。
定義・仕組み
単方向連結リスト
単方向連結リストでは、各要素が次の要素への参照だけを持ちます。
A → B → C
前へ戻るための参照はありません。
双方向連結リスト
双方向連結リストでは、各要素が前と次の両方への参照を持ちます。
A ⇄ B ⇄ C
前後どちらにも移動できます。
配列との違い
| 比較項目 | 配列 | 連結リスト |
|---|---|---|
| 要素の配置 | 連続して並ぶ | 参照でつながる |
| 添字によるアクセス | 速い | 先頭からたどる必要がある |
| 挿入・削除 | 要素の移動が必要になることがある | 参照の付け替えで対応しやすい |
| メモリ | 要素本体が中心 | 参照用の領域も必要 |
科目Aでどう出る?
科目Aでは、用途や特徴の比較が中心です。
次の表現を見分けます。
前後どちらにもたどれる
→ 双方向連結リスト
添字で直接アクセスする
→ 配列
先頭から順番にたどる
→ 連結リスト
また、途中への挿入や削除では、参照の付け替えが中心になる点も問われます。
科目Bでどう使う?
科目Bでは、参照の付け替えを追う問題に使われます。
たとえば、次の単方向連結リストに X を挿入します。
A → B → C
A と B の間に入れる場合は、次のように参照を変更します。
A → X → B → C
処理のポイントは、データ自体を大きく移動するのではなく、参照先を変更することです。
削除でも同様です。
A → B → C
B を削除するなら、A の次を C に変更します。
A → C
よくある誤解・混同
誤解1:連結リストは添字で直接アクセスできる
基本的にはできません。
目的の要素まで、先頭から順番にたどる必要があります。
誤解2:双方向連結リストは単方向より常に優れている
前後に移動できる一方、前向き・後ろ向きの参照を保持するため、必要な領域や更新処理は増えます。
誤解3:連結リストは挿入・削除が必ず高速
挿入位置が分かっていれば参照の付け替えで済みます。
ただし、位置を探すために先頭からたどる必要がある場合は、その探索時間も考えます。
誤解4:スタックやキューと同じ
スタックやキューは、データを取り出す順番に注目した考え方です。
連結リストは、要素同士を参照でつなぐ構造です。
連結リストを使ってスタックやキューを実装することはできますが、用語の意味は異なります。
まとめ(試験直前用)
- 連結リストは、参照で要素をつなぐ
- 単方向は次だけ、双方向は前後をたどれる
- 配列は添字で直接アクセスしやすい
- 連結リストは参照の付け替えで挿入・削除しやすい
- 位置を探す時間と参照用の領域にも注意する