No.88 四つのデータA,B,C,Dがこの順に入っているキューと空のスタックがある。
手続pop_enq,deq_pushを使ってキューの中のデータをD,C,B,Aの順に並べ替えるとき,deq_pushの実行回数は最小で何回か。
ここで,pop_enqはスタックから取り出したデータをキューに入れる操作であり,deq_pushはキューから取り出したデータをスタックに入れる操作である。
手続pop_enq,deq_pushを使ってキューの中のデータをD,C,B,Aの順に並べ替えるとき,deq_pushの実行回数は最小で何回か。
ここで,pop_enqはスタックから取り出したデータをキューに入れる操作であり,deq_pushはキューから取り出したデータをスタックに入れる操作である。
⭕️
❌
💾
| 🖊 | ☑️ |
| ⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
|
|
|
|
|
|
|
|
「キュー」と「スタック」のデータ構造についておさらいしておきます。
- キュー
- 先入れ先出しのデータ構造で、データを追加操作はenqueue(エンキュー)、データを取り出す操作はdequeue(デキュー)と呼ばれる。
- スタック
- 後入れ先出しのデータ構造で、データを追加操作はpush(プッシュ)、データを取り出す操作はpop(ポップ)と呼ばれる。
- 初期状態

- キューからAを取り出しスタックに追加する。(deq_push)

- キューからBを取り出しスタックに追加する。(deq_push)

- キューからCを取り出しスタックに追加する。(deq_push)これでDがキュー構造の先頭に配置されました。

- スタックからCを取り出しキューに追加する。(pop_enq)

- スタックからBを取り出しキューに追加する。(pop_enq)

- スタックからAを取り出しキューに追加する。(pop_enq)並び替え完了

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