技術士の過去問
令和元年度(2019年)
基礎科目「情報・論理に関するもの」 問12

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

技術士 第一次試験 令和元年度(2019年) 基礎科目「情報・論理に関するもの」 問12 (訂正依頼・報告はこちら)

スタックとは、次に取り出されるデータ要素が最も新しく記憶されたものであるようなデータ構造で、後入れ先出しとも呼ばれている。スタックに対する基本操作を次ように定義する。
 ・「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|

2.2回のPOPで上二つの数字が取り出されます。 

| |

| |

|2|

3.PUSH5にて、5が入ります。

| |

|5|

|2|

4.二回のPOPで上二つの数字が取り出されます。

| |

| |

| |


最後に取り出されるのは2となります。

よって、正解は2です。

参考になった数38

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