公式アカウントからの投稿が始まります

空の状態のキューとスタックの二つのデータ構造がある。次の手順を順に実行した場合、変数Xに代入されるデータはどれか。ここで、手続で引用している関数は、次の通りとする。
[関数の定義]
push(y):データyをスタックに積む。
pop():データをスタックから取り出して、その値を返す。
enq(y):データyをキューに挿入する。
dep():データをキューから取り出して、その値を返す。

[手続]
push(a)
push(b)
enq(pop())
enq(c)
push(d)
push(deq())
x←pop()

ア a
イb
ウc
エd

A 回答 (2件)

スタック:一番「最後」に入れたものが取り出される。

(pop)
キュー:一番「最初」に入れたものが取り出される。(deq)

[手続]
① aをスタックに積む
② bをスタックに積む(⇒bがスタックの一番上)
③ スタックから取り出したデータ
(⇒スタックの一番上にあるbが取り出される。この後、スタックの一番上はaになる)を
キューに挿入する(スタックから先ほど取り出したbをキューに入れる)
④ cをキューに挿入する。(⇒③で入れたbの後ろに挿入される。)
⑤ dをスタックに積む。(⇒dがスタックの一番上)
⑥ キューから取り出したデータ(キューの"先頭"にあるbが取り出される)を
スタックに積む。(⇒bがスタックの一番上)
⑦ スタックから取り出したデータ
(⇒スタックの一番上にあるbが取り出される。)を
xに代入する

よって、イが正解。
    • good
    • 0

で質問はなんですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!