技術士の過去問
令和元年度(2019年)
基礎科目「情報・論理に関するもの」 問12
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
技術士 第一次試験 令和元年度(2019年) 基礎科目「情報・論理に関するもの」 問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です。
参考になった数36
この解説の修正を提案する
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が正解になります。
参考になった数4
この解説の修正を提案する
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となります。
参考になった数3
この解説の修正を提案する
前の問題(問11)へ
令和元年度(2019年)問題一覧
次の問題(問13)へ