![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
(多分基本情報処理に関する問題だと思うのですが)データ構造に関する問題です、いくら考えても分かりません、宜しくお願いします。
【問】空の状態のキューとスタックの二つのデータ構造がある。
次の手続きを順に実行した場合、変数xに代入されるデータはどれか。
ここで、
・データyをスタックに挿入することをpush(y)
・スタックからデータを取り出すことをpop( )
・データyをキューに挿入することをenq(y)
・キューからデータを取り出すことをdeq( )
と表す。
(1)push(a)
(2)push (b)
(3)enq(pop( ))
(4)enq(c)
(5)push(d)
(6)push(dep( ))
(7)pop( ) → x
以上の答えとして(6)にはbがスタックにpushされるので、後入れ先出し
を考えると当然「xにはb」が入るはずなのですが、どうも答えは「d」となっています。
「d」は「b」より前にスタックされてますので、最新で取出される情報は「b」しかないと思うのですが、誰か誤りを指摘してください、宜しくお願いします。
No.2ベストアンサー
- 回答日時:
> スタックは、後入れ先出し
> スタックは、後入れ後出し
もちろん、後入れ咲き出しですね。
depがdeqだとすると答えはおっしゃるとおりdですね。
depが正しいとするとこれはノーゲームですね。
depをスキップすると確かにdですが。
通常の処理系なら7)までたどり着かないでしょう。
この回答への補足
ステップを踏んでいくと以下の状態になるのではないでしょうか?
(1)push(a)
スタック a キュー
(2)push(b)
スタック a,b キュー
(3)enq(pop())
スタック a キュー b
(4)enq(c)
スタック a キュー b,c
(5)push(d)
スタック a,d キュー b,c
(6)push(deq())
スタック a,d,b キュー c
(7)pop() → x
∴ x=b (一番最後に入れたものが最初に取出される(後入れ先出しの原理))
No.7
- 回答日時:
makohyuです。
申し訳ありませんが、私がこれ以上回答できることはありません。
質問、補足になんどもご友人がこういっている、・・・らしい、・・・聞いている、と不確定な情報ばかりです。
htgoさんが、この質問についての納得のいく回答を得たいのでしたら、質問の内容を精査し、あらためて質問をたてられることをお薦めいたします。
お役に立てず、すみませんでした。
No.5
- 回答日時:
#1,#3のmakohyuです。
>⇒ これは私が投稿する際のミスプリです。
あらら~、そうなんですか?
てっきりそういう設問だと思いました。
だとすると、単純に設問が間違ってるのでは?
このあいだに、「そういう設問」だとして、次の回答をせっかく書いてみたので読んでみてください。
=======================================
ご理解のために、この設問の意図を想像してみました。
出題者は、この設問の答えによって、
1) b と回答
おしい。しかし、学んだことは理解している。
2) b,d 以外の回答
おいおい、もう少しがんばりましょう!
3) d と回答
正解! よくぞ私の与えた矛盾に耐えた。
dep() の p に気がついて、これでは動かない、けど、「変数xに代入されるデータはどれか」という矛盾。
矛盾に耐えて答えを出せ! という意図なのだと思います。
================================================
深読みしすぎました^^;
お茶目な出題者だな~、と。
話を戻すと、「この問題は間違ってる」が私の回答です。
makohyuさん、有難う御座います。
⇒ と言うことは、「(6)push(deq( ))」なら、答えは「b」で良いのでしょうか。
どうももう一つ腑に落ちないのですが。
No.4
- 回答日時:
No.2です。
> ∴ x=b (一番最後に入れたものが最初に取出される(後入れ先出しの原理))
pがqの転記ミスということで有ればその通りです。
私もbをdと転記ミスしてました。すみません。
No.3
- 回答日時:
makohyuです。
編集ミスです。謹んで訂正いたします。
>⇒ということなら、(3)enq(pop( ))もなにもしないということですか?
>そうじゃないですよね?「b」をスタックから取出し、キューに入れていますよね。
そのとおりです。
確認なのですが、
>(6) のdep() は(6) のdeq()の間違いです。
とは、もともとの問題がそう書いてあるという意味ですか?
そうだとすると、
#2の方もおっしゃってましたが、この問題はペーパーに書かれた設問なので実際の処理は考慮しないという、昔からよくある設問なのではないでしょうか。
ですから、「スペルミスを見つけられるかというデバッグの力を問われている設問」と説明したのです。
>多分基本情報処理に関する問題だと思うのですが
「多分」、のあたりでこの辺かな? と思ったしだいです。
実際のコンピュータのメモリを対象にしている設問なら、「多分」とは書かれないはずですから。。。
makohyuさん、有難う御座います。
>多分基本情報処理に関する問題だと思うのですが
⇒ 私も友人に聞かれたのですが、どうも答えは「d」のようです。
その友人も答えは「b」になると言ってますので、私に確認を求めてきたのです。
>(6) のdep() は(6) のdeq()の間違いです。
⇒ これは私が投稿する際のミスプリです。
以上ステップを追って行くと「b」が正解と思われるのですが、皆様方の回答なり考え方はどのようなものでしょうか、宜しくお願いします。
No.1
- 回答日時:
スタックは、後入れ後出しです。
(1)push(a)
スタック a キュー
(2)push(b)
スタック a,b キュー
(3)enq(pop())
スタック a キュー b
(4)enq(c)
スタック a キュー b,c
(5)push(d)
スタック a,d キュー b,c
(6)push(dep())
スタック a,d キュー b,c
(7)pop() → x
(6) のdep() がスペルミスでなければ、X は d になりますけど。。。
dep()は定義されていないので、何もしない、データは動いていないというわけではないですか?
スペルミスを見つけられるかというデバッグの力を問われている設問ですかね。
makohyuさん、有難うございます。
(6) のdep() は(6) のdeq()の間違いです。
>スタックは、後入れ後出しです。
⇒スタックは、後入れ先出しではないのですか。一体どこで定義されているのですか?私の見ている参考書では「Last In First Out」と定義されていますが?
>deq()は定義されていないので、何もしない、データは動いていないというわけではないですか?
⇒ということなら、(3)enq(pop( ))もなにもしないということですか?
そうじゃないですよね?「b」をスタックから取出し、キューに入れていますよね。
makohyuさんの回答では、(6)は何も処理行為を実行していませんが、これは何故ですか。これはキューからbを取出し、スタックに入れるという行為だと思うのですが、全くここが理解できません。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VALORANTのロードが長いです
-
パソコンチェアの底部のネジが...
-
自作パソコン、webカメラの画像...
-
PCファイルの完全な削除方法
-
PCでDVDを見る方法を教えてくだ...
-
このcpuクーラーよりも小型なcp...
-
よろしくお願いします。よろし...
-
パソコンとテレビをHDM線でつな...
-
トラブルシューティングに強く...
-
既存の用紙に文字を入力し、印...
-
よろしくお願いします。 PCが壊...
-
パソコン購入のアドバイスください
-
PC上で簡単にラベル編集出来て...
-
amzon fire tV stick の無限ル...
-
ポータブルテレビのHDDについて
-
MicrosoftIMEなんですが、全然...
-
アマゾンミュージックからウォ...
-
マイクロソフトアカウントについて
-
半田ごてをコンセントに繋いだ...
-
3台のPCから同時に音を出せるマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.netでDLLを読み込んで実行す...
-
printf / sprintf のスタック消...
-
最大スタックサイズを大きくす...
-
_CRTIMPの意味は?
-
スタックフレームの消滅
-
スタックの伸張方向
-
エラー?メッセージ
-
スタックとキューの使い所
-
CASLとCASL2の違いについて
-
逆ポーランド記法
-
キューとスタックの問題です、...
-
再帰関数を使うとき、ソフトウ...
-
pthreadのスタックサイズ設定取...
-
再帰処理を非再帰処理に書き換...
-
二分探索木の行きがけ順走査
-
gccでスタックサイズを変更する...
-
スタックのpush/pop動作について
-
スタックを用いて整数配列を入...
-
ゆゆにゃ。
-
スタック領域変更
おすすめ情報