空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合、変数 x に代入されるデータはどれか。ここで、手続で引用している関数は、次のとおりとする。 〔関数の定義〕 - push(y):データ y をスタックに積む。 - pop():データをスタックから取り出して、その値を返す。 - enq(y):データ y をキューに挿入する。 - deq():データをキューから取り出して、その値を返す。 〔手続〕 push(a) push(b) enq(pop()) enq(c) push(d) push(deq()) x ← pop()
イ. b
push(a)→stack=[a], push(b)→[a,b], enq(pop())→stack=[a], queue=[b], enq(c)→queue=[b,c], push(d)→[a,d], push(deq())→stack=[a,d,b](b は queue から deq), x←pop()→x=b。
基本情報技術者試験 令和2年度 科目A 修了認定試験 の過去問一覧へ戻る・問7