データ構造(スタック・キュー)とは?わかりやすく解説

テクノロジ系 ・ アルゴリズムとプログラミング ・ 読む目安8分 ・ 頻出

データの並べ方・取り出し方の代表、スタックとキューなどを学びます。

最初に考えてみよう

データを何となく並べておくと、あとで探す、追加する、並べ替えるときに手間がかかります。どうすれば、目的に合わせてデータを扱いやすく整理できるのでしょうか?

解説

データ構造はデータの並べ方・取り出し方。代表がスタック(後入れ先出し・LIFO)とキュー(先入れ先出し・FIFO)。出入りの順番が逆なのがポイント。

1スタック = 後入れ先出し(LIFO)

机に積んだ本のように、上(最後に入れた所)から出ます。pushで積み、popで取り出そう。

↓ 出入り口は上だけ ↑
取り出した
  • 1
  • 2

入れた順
1 → 2
出た順
—

まず push と pop を押して、どの箱が出てくるか見てみよう。

2キュー = 先入れ先出し(FIFO)

レジの行列のように、先頭(最初に並んだ人)から出ます。末尾に並べ、先頭から取り出そう。

先頭(ここから出る)末尾(ここに並ぶ)
  • 1
  • 2

入れた順
1 → 2
出た順
—

enqueue と dequeue を押して、だれが列から出るか見てみよう。

3ほかのデータ構造

配列
番号(添字)で位置を指定して並べる
リスト
各データが次のデータの場所を指してつながる
木構造
枝分かれして階層を表す(フォルダなど)

試験のポイント

ITパスポート試験での問われ方

スタックとキューの取り出し順、LIFO/FIFOの対応が問われる

間違えやすいポイント

  • スタックとキューを逆にする
  • LIFOとFIFOを取り違える

関連用語

スタック、キュー、LIFO、FIFO、配列、リスト、木構造

図解の内容を文章で読む

データ構造(スタック・キュー)をイメージでつかむ

データ構造は、データを整理して扱う形です。スタックは後に入れたものを先に取り出すLIFO(後入れ先出し)、キューは先に入れたものを先に取り出すFIFO(先入れ先出し)。ほかに、順番に並べた配列やリスト、枝分かれする木構造があります。

たとえると:スタックは机に積んだ本(上=最後に置いた本から取る)、キューはレジの行列(先に並んだ人から会計)です。

データ構造は、データを取り出しやすいように並べて管理する「入れ物の形」です。代表がスタックとキューで、違いは取り出す順番だけです。スタックは机に積んだ本のように、最後に入れたものを最初に取り出します(LIFO=後入れ先出し)。入れる操作をプッシュ、取り出す操作をポップと呼びます。キューはレジの行列のように、最初に入れたものから順に取り出します(FIFO=先入れ先出し)。ほかに、番号で管理する配列、要素をつなぎ合わせるリスト、枝分かれで階層を表す木構造があります。試験では「A、B、Cの順に入れて2回取り出すと何が出るか」のような具体的な出し入れの問題が定番です。積んだ本と行列のイメージで確実に判断できます。

押さえどころ

  • スタック=LIFO(後入れ先出し)
  • キュー=FIFO(先入れ先出し)
  • 配列・リスト・木構造もある

確認問題(4問)

確認問題を読み込んでいます...

確認問題は本サービスのオリジナル問題です。ログインなしで解けます(結果は保存されません)。

「データ構造(スタック・キュー)」に関連する過去問(2問)

このテーマが主題の問題はまだありませんが、関連する用語が問題文や選択肢に出てくる公開問題を集めました。

あわせて覚える英略語

つながるテーマ

この解説をXでシェア

学習を記録して、合格まで続ける

教材と確認問題はこのページで全部無料で使えます。登録すると「データ構造(スタック・キュー)」の結果や習熟度が記録され、苦手分野の復習提案、試験日までの学習計画、合格準備度の見える化が使えます。最初の7日間は学習記録も無料です。