技術士 過去問
令和元年度(2019年)
問12 (基礎科目「情報・論理に関するもの」 問12)
問題文
スタックとは、次に取り出されるデータ要素が最も新しく記憶されたものであるようなデータ構造で、後入れ先出しとも呼ばれている。スタックに対する基本操作を次ように定義する。
・「PUSH n」スタックに整数データnを挿入する。
・「POP」スタックから整数データを取り出す。
空のスタックに対し、次の操作を行った。
PUSH 1、PUSH 2、PUSH 3、PUSH 4、POP、POP、PUSH 5、POP、POP
このとき、最後に取り出される整数データとして、最も適切なものはどれか。
・「PUSH n」スタックに整数データnを挿入する。
・「POP」スタックから整数データを取り出す。
空のスタックに対し、次の操作を行った。
PUSH 1、PUSH 2、PUSH 3、PUSH 4、POP、POP、PUSH 5、POP、POP
このとき、最後に取り出される整数データとして、最も適切なものはどれか。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
技術士 第一次試験 令和元年度(2019年) 問12(基礎科目「情報・論理に関するもの」 問12) (訂正依頼・報告はこちら)
スタックとは、次に取り出されるデータ要素が最も新しく記憶されたものであるようなデータ構造で、後入れ先出しとも呼ばれている。スタックに対する基本操作を次ように定義する。
・「PUSH n」スタックに整数データnを挿入する。
・「POP」スタックから整数データを取り出す。
空のスタックに対し、次の操作を行った。
PUSH 1、PUSH 2、PUSH 3、PUSH 4、POP、POP、PUSH 5、POP、POP
このとき、最後に取り出される整数データとして、最も適切なものはどれか。
・「PUSH n」スタックに整数データnを挿入する。
・「POP」スタックから整数データを取り出す。
空のスタックに対し、次の操作を行った。
PUSH 1、PUSH 2、PUSH 3、PUSH 4、POP、POP、PUSH 5、POP、POP
このとき、最後に取り出される整数データとして、最も適切なものはどれか。
- 1
- 2
- 3
- 4
- 5
正解!素晴らしいです
残念...
この過去問の解説 (4件)
01
プログラミングのデータ処理に関する問題です。
問題文より、
・「PUSH n」スタックに整数データnを挿入する。
・「POP」スタックから整数データを取り出す。
と分かります。
一つの容器(スタック)に数字が積まれていき(PUSH)、上から順に取り出していく(POP)ようなイメージを持って下さい。
順を追って解説します。
1.PUSH1,PUSH2,PUSH3,PUSH4にて、容器には数字1234の順で入っています。
[容器イメージ]
|4|
|3|
|2|
|1|
2.2回のPOPで上二つの数字が取り出されます。
| |
| |
|2|
|1|
3.PUSH5にて、5が入ります。
| |
|5|
|2|
|1|
4.二回のPOPで上二つの数字が取り出されます。
| |
| |
| |
|1|
最後に取り出されるのは2となります。
よって、正解は2です。
参考になった数40
この解説の修正を提案する
02
PUSHを1234実施するため、箱には1234の順で入っています。
POPで取り出しされるのは4です。
POPで取り出されるのは3です。
PUSHで125の順に箱に入っています。
POPで取り出されるのは5です。
POPで取り出されるのは2です。
よって、最後に取り出されるのは 2 です。
参考になった数8
この解説の修正を提案する
03
アルゴリズムに関する問題です。
POPは最も新しいPUSHの整数データを取り出しますので
PUSH1、PUSH2、PUSH3、PUSH4の順番に挿入された時点で
データ「1、2、3、4」の通り並んでいる場合
次にPOPの操作をすると、先に4が取り出され「1、2、3」のデータが残ります。
続いて、POPの操作で1、2
その後PUSH5の操作で1、2、5
その後POPの操作が2回続きますが、最後のPOPの操作で
取り出される整数データは2になります。
したがって、選択肢の2が正解になります。
参考になった数5
この解説の修正を提案する
04
<正解>2
[解説]
スタックに操作を行った場合に取り出されるデータを答える問題です。
問題文の操作を順に行った場合、以下のようになります。
PUSH 1 → スタックに1が入る
(操作後、一番上にある整数データは1)
PUSH 2 → スタックに2が入る
(操作後、一番上にある整数データは2)
PUSH 3 → スタックに3が入る
(操作後、一番上にある整数データは3)
PUSH 4 → スタックに4が入る
(操作後、一番上にある整数データは4)
POP → スタックから4を取り出す
(操作後、一番上にある整数データは3)
POP → スタックから3を取り出す
(操作後、一番上にある整数データは2)
PUSH 5 → スタックに5が入る
(一番上にある整数データは5)
POP → スタックから5を取り出す
(操作後、一番上にある整数データは2)
POP → スタックから2を取り出す
よって、最後に取り出される整数データは、「2」となり、正解は2となります。
参考になった数4
この解説の修正を提案する
前の問題(問11)へ
令和元年度(2019年) 問題一覧
次の問題(問13)へ