45
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初学者向け】「どう並べて、どう取り出すか」で変わる - データ構造の基礎

45
Last updated at Posted at 2026-04-28

株式会社PRUMのmasaです。

今日は「データをどう並べ、どう取り出すか」というルール(データ構造)について、初学者向けにまとめました。

プログラムは「データの集まり」をどう扱うかで、その動き方が大きく変わります。

この記事では、データの扱い方の基本パターンを知ることで、「どのようにデータを整理し、どう処理すべきか」を判断するための土台を身につけることを目的としています。

処理の順番で使い分ける 「スタック」と「キュー」の基本

プログラミングをしていると、複数のデータを一時的に溜めておき、後で順番に取り出して処理したい場面によく遭遇します。

このとき、「どういう順番でデータを取り出すか」というルールを定義するのが、スタックキュー というデータ構造です。

結論:出口のルールで「できる処理」が変わる

「最後に入れたものを先に出すか(スタック)」、それとも「最初に入れたものから出すか(キュー)」という違いによって、実現できる処理の形が決まります。

この違いを理解することで、処理の流れが整理され、特に順序が重要なロジックにおいて、意図しない挙動(バグ)を防ぎやすくなります。

基礎知識:LIFOとFIFO

言葉だけ聞くと難しそうですが、仕組みはシンプルです。

  • スタック(Stack)LIFO(Last-In, First-Out / 後入れ先出し)
    → 最後に保存したデータが、最初に取り出される

  • キュー(Queue)FIFO(First-In, First-Out / 先入れ先出し)
    → 最初に保存したデータが、順番に取り出される

具体例:机の上の書類とスーパーのレジ待ち

スタックは「机の上に積み上げた書類」です。
最後に置いた書類が一番上に来るため、次に使うときは一番最初に取り出されます。

ブラウザの「戻る」ボタンもこの考え方に近く、最後に見たページに戻ります。
※実際には「戻る用」と「進む用」で複数のスタックを組み合わせて実現されています。

キューは「スーパーのレジ待ち」です。
先に並んだ人から順番に案内されます。

コンピュータでは、プリンターの印刷待ちなどで使われています。

複数データを効率よく扱う 「配列」と「リスト」の使い分け

次に、複数のデータをメモリ上にどう並べるかという話です。
よく使われるのが 配列(Array)リスト(連結リスト) です。

結論:やりたい操作で「収納方法」を選ぶ

データ構造には、それぞれ得意・不得意があります。
「どんな操作を一番よく行うか」で選ぶことが重要です。

基礎知識:メモリ上の並び方の違い

  • 配列(Array)
    メモリ上に「連続した領域」として並んでいます
    (言語によって内部実装は異なりますが、基本的な考え方は同じです)

  • リスト(連結リスト / Linked List)
    データがバラバラな場所にあり、それぞれが「次のデータの場所」を持っています
    (この「次を指す仕組み」をポインタと呼びます)

具体例:マンションの郵便受けと連絡網

配列は「番号が決まっているマンションの郵便受け」です。

101号室、102号室…と並んでいるので、
「105号室」と言われれば一瞬で見つけられます。

  • メリット:特定の位置のデータを高速に取得できる
  • デメリット:途中に要素を入れるとき、後ろのデータをずらす必要がありコストが高い

リストは「電話の連絡網」です。

「Aさん→Bさん→Cさん」と順番に繋がっています。

  • メリット:途中にデータを追加・削除しやすい(つなぎ替えるだけ)
  • デメリット:目的のデータにたどり着くには順番に追う必要がある

どちらを使うべきかの判断基準

迷ったときは、 どの操作を一番よく行うか で考えます。

特定の位置のデータをすぐ取り出したい

→ 配列

途中への追加・削除が多い

→ リスト

ただし実務では、CPUキャッシュ効率などの理由から、配列(動的配列)が使われるケースが多いです。

さいごに

データ構造は一見地味ですが、「データをどう扱うか」というプログラムの根本的な考え方を支える重要な土台です。

いきなりすべてを理解する必要はありません。
まずは「このデータはどんなルールで扱うと自然か?」という視点を持つだけで、コードの見え方が変わってきます。

少しずつ経験を積みながら、自分なりに「扱いやすい形」を選べるようになっていきましょう。


PRUMのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
コーポレートサイト

エンジニアの方に役立つ記事をまとめたサイトも運営しています。もしご興味あれば覗いてみてくださいね。
エンジニアに役立つ記事サイト

45
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?