アルゴリズムとデータ構造(スタック・キュー)【ITパスポート講座】

この記事で学ぶこと
- アルゴリズムとデータ構造について
- フローチャートの概要
- スタックとキュー
今回はITパスポートで問われるアルゴリズムとデータ構造について学習します。


アルゴリズムとデータ構造
アルゴリズムとは、問題を解決するための「考え方」や「やり方」のことです。

アルゴリズムはフローチャートと呼ばれる図で示すとわかりやすくなります。例えば以下の例題を通して確認してみましょう。

例題の処理をフローチャートに示すと、以下のようになります。
フローチャートの記号はJIS(日本産業規格)で規格化されているので、覚えておきましょう。
図・記号 | 名称 | 意味 |
![]() |
端 | プログラムの「始まり」と「終わり」を示す |
![]() |
処理 | 「入力」「記憶」「演算」「出力」の処理を示す |
![]() |
判断 | 「分岐」や「繰り返し」を示す |
![]() |
ループ開始 | 「繰り返し」の始まりを示す |
![]() |
ループ終了 | 「繰り返し」の終わりを示す |

変数とは
変数は、データを格納する箱と表現されます。
数学でも「x」や「y」を変数として扱いますが、プログラムにおいても同様に、値を格納するための領域に名前を付けて変数として扱います。

代入の表現はプログラム言語によってまちまちですが、「x ← 10」や「x = 10」と記載します。

変数には計算結果を代入するケースもあります。
例えば変数を「x」「y」「z」と3つ用意し、「x = 10」「y = 5」「z = x + y」とすれば「z」は「x」と「y」の加算結果を代入することになります。
配列とは
プログラムで数個のデータを扱うケースを考えてみましょう。

複数のデータをまとめて扱う場合、配列と言う考え方を用います。配列は同じ名前で番号(添字)によって区別する方法です。
10人の成績を格納する変数は、A[0]~A[9]のようにあらわします。


プログラムの制御構造
全てのプログラムは、以下の3構造からできています。
順次
順次処理は文字通り、StartからEndまで順番に実行します。
選択(分岐)
選択(分岐)処理は、条件が真(YES)か、偽(NO)で処理が分かれます。
繰り返し(ループ)
繰り返し(ループ)処理は、ある条件の間処理を繰り返します。
ループに入る前に判断する繰り返し処理を前判定と言います。一方で、ループ終了時に終了条件を書くことを後判定と呼びます。
データ構造
アルゴリズム同様に重要な考え方として、データ構造が挙げられます。
コンピュータは大量のデータを扱うため、どのようにデータを配置するか考える必要があります。
具体的なデータ構造として、キューとスタックを紹介します。
キュー
キューは待ち行列とも言われます。銀行のATMやスーパーのレジのように一番後ろに並び、古い順に処理されることからFIFO(First In First Out)とも呼ばれます。


スタック
スタックは最後に入れたものが最初に処理されることから、LIFO(Last In First Out)とも呼ばれます。
処理すべき書類や本が積み重ねられ、新しく入ったものが先に処理されるイメージです。
データをスタックへ格納することをPUSH(プッシュ)、取り出すことをPOP(ポップ)と呼びます。

アルゴリズムとデータ構造の例題
実際に例題を解いて問題に慣れていきましょう。
問1
流れ図Xで示す処理では,変数 i の値が,1→3→7→13と変化し,流れ図Yで示す処理では,変数 i の値が,1→5→13→25と変化した。図中のa,bに入れる字句の適切な組合せはどれか。(R.3/問74)
a | b | |
ア | 2i + k | k:1,3,7 |
イ | 2i + k | k:2,2,6 |
ウ | i + 2k | k:1,3,7 |
エ | i + 2k | k:2,2,6 |
ア
イ
ウ
エ
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
問2
先入れ先出し処理を行うのに適したキューと呼ばれるデータ構造に対して”8″,”1″, “6”,”3″の順に値を格納してから,取出しを続けて2回行った。2回目の取出しで得られる値はどれか。(H.30春/問96)
ア:1
イ:3
ウ:6
エ:8
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
問3
複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。(H.30秋/問76)
ア:格納された順序に関係なく指定された任意の場所のデータを取り出す。
イ:最後に格納されたデータを最初に取り出す。
ウ:最初に格納されたデータを最初に取り出す。
エ:データがキーをもっており,キーの優先度のデータを取り出す。
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
アルゴリズムとデータ構造のまとめ
今回はアルゴリズムとデータ構造について学習しました。
アルゴリズムとデータ構造はプログラミングを考える基礎になるため押さえておきましょう。

次回はプログラミングについて学習します。

福井県産。北海道に行ったり新潟に行ったりと、雪国を旅してます。
経理4年/インフラエンジニア7年(内4年は兼務)/ライター5年(副業)
簿記2級/FP2級/応用情報技術者/情報処理安全確保支援士/中小企業診断修得者 など
ディスカッション
コメント一覧
まだ、コメントがありません