図解 スタックからのデータ出力の順序

「スタック」は、プログラミングにおいて重要なデータ構造の一つです。

スタック:データを一時的に格納する入れ物のことで、後入れ先出し(Last-In-First-Out、LIFO)と呼ばれる特定のデータアクセス方法に基づいています。

プッシュ(Push): データをスタックに追加する操作は「プッシュ」と呼ばれます。新しい要素はスタックのトップに追加されます。
ポップ(Pop): データをスタックから取り出す操作は「ポップ」と呼ばれます。スタックのトップから要素が削除され、その値が取り出されます。

 

 

過去の情報処理試験で次の様な問題がありました。

A,B,Cの順序で入力されるデータがある。かくデータについてスタックへの挿入と取り出しを1回ずつ行うことができる場合、データの出力順序は何通りあるか。

 

 

まず、一番簡単な方法。 A→B→Cとすべてスタックにいれてしまって、上から順に、C→B→Aと、取り出す方法

 

次に、A→Bを入れた(PUSH)した後に、一度Bを取り出します(POP)。

その後、CをPUSHして、C→Aの順番に取り出します。

 

考え方に少しなれてきましたか?

あとは組み合わせなので、

PUSH:A→B

POP:B→A

PUSH:C

POP:C

 

PUSH:A

POP:A

PUSH:B→C

POP:C→B

 

PUSH:A

POP:A

PUSH:B

POP:B

PUSH:C

POP:C

 

答えは5通りあると言うことになります。

 

これを試験まで覚えていられるかが不安です・・・