yyyytスタック(stack)
スタック(stack)とは
スタックとは、後から記録したデータを先に取り出すLIFO(Last-In First-Out)方式のデータ構造
プッシュ(push)・・・スタックにデータを格納すること
ポップ(pop)・・・スタックからデータを取り出すこと
スタックが利用されるのは
関数や手続を呼び出す際に、戻り番地や処理途中のデータを一時的に保存するために利用される
戻り番地をスタックで管理する
キュー(queue)
キューとは、先に記録したデータを先に取り出すFIFO(First-In First-Out)方式のデータ構造
待ち行列ともよばれる
エンキュー(enq)・・・キューにデータを格納すること
デキュー(deq)・・・キューからデータを取り出すこと
例題1 A,R,Sの順に到着するデータに対して、一つのスタックだけを用いて出力不可能なデータ列はどれか。
ア A、S、R イ R、S、A ウ R、A、S エ S、A、R
ア A、S、R を試してみる
例題2 待ち行列に対する操作を、次のとおり定義する。
ENQ n : 待ち行列にデータnを挿入する。
DEQ : 待ち行列からデータを取り出す。
空の待ち行列に対し、ENQ A, ENQ B, ENQ C, DEQ, ENQ D, ENQ E, DEQの操作を行った。次のDEQの操作で取り出される文字は何か。
次のように書いて答えを求める
確認問題
1.( a )とは、後から記録したデータを先に取り出す( b )方式のデータ構造
2.スタックにデータを格納することを( a )という
3.スタックからデータを取り出すことを( a )という
4.スタックは、関数や手続を呼び出す際に、( a )や( b )を一時的に保存するために利用される
5.( a )とは、先に記録したデータを先に取り出す( b )方式のデータ構造
6.キューにデータを格納することを( a )という
7.キューからデータを取り出すこと( a )という
基本情報対策問題
1.A、B、C、Dの順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。
ア A、D、B、C イ B、D、A、C ウ C、B、D、A エ D、C、A、B
2.空のスタックに対して次の操作を行った場合、スタックに残っているデータはどれか。ここで、“push x ”はスタックへデータx を格納し、“pop”はスタックからデータを取り出す操作を表す。
push 1 → push 2 → pop → push 3 → push 4 → pop → push 5 → pop
ア 1と3 イ 2と4 ウ 2と5 エ 4と5
3.空の待ち行列に対し、ENQ 1, ENQ 2, ENQ 3, DEQ, ENQ 4, ENQ 5, DEQ, ENQ 6, DEQ, DEQの操作を行った。次のDEQの操作で取り出される値はどれか。
ア 1 イ 2 ウ 5 エ 6