No.48 空の状態のキューとスタックの二つのデータ構造がある。
次の手続を順に実行した場合,変数xに代入されるデータはどれか。
ここで,手続きに引用している関数は,次のとおりとする。
〔関数の定義〕
push(y):データyをスタックに積む。
pop():データをスタックから取り出して,その値を返す。
enq(y):データyをキューに挿入する。
deq():データをキューから取り出して,その値を返す。
〔手続〕
push(a)push((***))enq(pop())enq(c)push(d)push(deq())x ← pop()
次の手続を順に実行した場合,変数xに代入されるデータはどれか。
ここで,手続きに引用している関数は,次のとおりとする。
〔関数の定義〕
push(y):データyをスタックに積む。
pop():データをスタックから取り出して,その値を返す。
enq(y):データyをキューに挿入する。
deq():データをキューから取り出して,その値を返す。
〔手続〕
push(a)push((***))enq(pop())enq(c)push(d)push(deq())x ← pop()
⭕️
❌
💾
| 🖊 | ☑️ |
| ⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
|
|
|
|
|
|
|
|
スタックは後入先出し、キューは先入先出しのデータ構造です。設問の手続きの実行するとスタックとキューの内容は次のように変化していきます。
- push(a)…aをスタックに挿入する

- push(b)…bをスタックに挿入する

- enq(pop())…スタックから取り出したデータ(b)をキューに挿入する

- enq(c)…cをキューに挿入する

- push(d)…dをスタックに挿入する

- push(deq())…キューから取り出したデータ(b)をスタックに挿入する

- x←pop()…スタックから取り出したデータ(b)をxに代入する

💾
✔️
| [[ d.CommentTxt ]] |
| < | > |
| 🥇 |