「配列と連結リストってどちらもデータを保存するための構造だよね?」
応用情報技術者試験でもデータ構造分野で頻出ですが、
- 何が違うの?
- どちらが高速?
- 挿入や削除はどちらが得意?
- メモリ上ではどう管理される?
で混乱する人がかなり多いテーマです。
この記事では、
- 配列とは?
- 連結リストとは?
- 違い
- メリット・デメリット
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
配列
「データを連続した領域に格納する」
連結リスト
「データ同士をポインタでつなぐ」
超簡単にいうと
| データ構造 | イメージ |
|---|---|
| 配列 | ロッカー |
| 連結リスト | 電車の車両 |
配列とは?
超頻出!
特徴
データを
連続したメモリ領域
に格納する。
イメージ
[10][20][30][40]
メモリ上
100
101
102
103
のように並んでいる。
メリット
重要!
要素へのアクセスが高速
例えば
3番目の要素
を直接参照できる。
デメリット
挿入・削除が遅い
途中へ追加すると
後ろのデータをずらす必要がある。
例
10 20 30 40
25を追加
↓
10 20 25 30 40
30と40を移動する必要がある。
連結リストとは?
超頻出!
特徴
データと次のデータの位置を持つ。
イメージ
10 → 20 → 30 → 40
実際は
データ
+
次のアドレス
を持つ。
メモリ上
10
↓
30
↓
20
↓
40
のようにバラバラでもOK。
メリット
重要!
挿入・削除が高速
ポインタを付け替えるだけ。
例
10 → 20 → 30
25を追加
↓
10 → 20 → 25 → 30
リンク変更だけで済む。
デメリット
アクセスが遅い
先頭から順番にたどる必要がある。
配列と連結リストの違い
超頻出!
| 比較 | 配列 | 連結リスト |
|---|---|---|
| 格納方法 | 連続領域 | ポインタ接続 |
| アクセス | 高速 | 遅い |
| 挿入 | 遅い | 高速 |
| 削除 | 遅い | 高速 |
| メモリ効率 | 良い | ポインタ分必要 |
イメージで理解
配列
ロッカー番号管理
3番ロッカーへ
すぐ行ける。
連結リスト
宝探しの地図
順番にたどる必要がある。
計算量
応用情報で頻出!
| 操作 | 配列 | 連結リスト |
|---|---|---|
| 参照 | O(1) | O(n) |
| 挿入 | O(n) | O(1)※ |
| 削除 | O(n) | O(1)※ |
※挿入・削除位置が分かっている場合
利用例
配列
- 学生名簿
- 商品一覧
- 点数管理
連結リスト
- キュー
- スタック
- OSのメモリ管理
試験での覚え方
超重要!
配列
探すのが得意
連結リスト
追加・削除が得意
よくあるひっかけ
「連結リストはアクセスが速い」
→ ❌違う!
連結リストは
順番にたどる
必要がある。
応用情報で超頻出
かなり狙われる👇
- 配列
- 連結リスト
- ポインタ
- O(1)
- O(n)
- データ構造
1分で復習!
配列
連続して格納
連結リスト
ポインタで接続
配列
参照が高速
連結リスト
挿入・削除が高速
超重要
配列=ロッカー
連結リスト=電車
練習問題
問題
連結リストの特徴として最も適切なものはどれか。
ア
データを連続したメモリ領域に格納する
イ
添字で高速アクセスできる
ウ
データ同士をポインタで接続する
エ
挿入・削除が必ず配列より遅い
解答
正解:ウ
解説
連結リストはデータと次のデータへの参照(ポインタ)を保持し、要素同士を連結して管理します。
まとめ
配列とは
「連続した領域に格納する」
連結リストとは
「ポインタでつなぐ」
超重要
- 配列=アクセス高速
- 連結リスト=挿入・削除高速
- 配列=O(1)参照
- 連結リスト=O(n)参照
まずは、
「配列=ロッカー」
「連結リスト=電車の車両」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント