• ベストアンサー

スタックについて

A、B、C、Dの順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。  ア A、D、B、C  イ B、D、A、C  ウ C、B、D、A  エ D、C、A、B 解答は C B D A  (pop) C B → B → → D → → A A A A A   となり、ウとなります。 しかし、A、B、C、Dの順に到着するデータということから D C B A とデータが積み上げられることになると思われます。 そうなると、解答もDCBAとなると思われます。 スタックはデータを2つしか積み上げられない ものと考えるのなら問題はないのですが、 疑問が残ります。 長文となりましたが、宜しくお願いいたします。

  • KGM
  • お礼率44% (66/148)

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1>全てのデータが到着してから、出力が行なわれないのでしょうか? 問題文では、到着する順について示されていて、出力されるタイミングについては書かれていませんから、全てのデータが到着してからというような条件はありません。(スタックを利用するタイミングに全てのデータが入ってからなどという制限があろうはずもありません) #2>スタックにはデータを入れられる限界があるのでしょうか。 スタックが利用できるサイズについても問題文では示されていないので、無限に使えるもしくは、問題で示されるデータを保持するに充分なサイズがあるとして良いでしょう。 一般的には、 メモリのサイズに制限を受けるし、プログラムと同一のセグメントを使っている場合、プログラムを破壊しない部分までが使えます。

KGM
質問者

お礼

やっと理解することができました!! 問題文をよく見たら、直ぐ解決することができました。

その他の回答 (3)

noname#42065
noname#42065
回答No.4

質問者さんのおっしゃるとおり、D,C,B,Aの順にスタックから出てくる場合もあります。 しかし、回答3でも述べられているように、スタックに入ったデータは、好きなときに取り出すことができます。 なので、この問題では、A,B,Cが入った時点でC,Bを取り出し、Dをスタックに入れ、D,Aと取り出しています。 一つのスタックだけを用いて出力可能なデータ列はどれか。                  ~~~~~~~~ とあるので、1つのスタックを用いれば、D,C,B,AやC,B,D,Aの順にデータを取り出すことができます。 選択肢のア、イ、エは、1つのスタックを使ってもデータを選択肢のような順番で取り出すことはできません。 なお、1つのスタックを使うと、回答2で答えられている14通りの方法があります。 このうち、D,C,B,Aの順に取り出す事もできるのですが、それだと、問題が間単になってしまうので、あえてC,B,D,Aを選択肢に入れたのだと思います。

KGM
質問者

お礼

Dの解答を「DCBA」と勘違いしていました・・・・・ 大変ご迷惑をおかけして申し訳ございません。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

単に、ア・イ・エは、スタックひとつだけだと不可能だから、正解でないというだけでは。 試してみると14通りあるみたいです。 1 A B C D 2 A B D C 3 A C B D 4 A C D B 5 A D C B 6 B A C D 7 B A D C 8 B C A D 9 B C D A 10 B D C A 11 C B A D 12 C B D A 13 C D B A 14 D C B A

KGM
質問者

お礼

全てのデータを入力しないと、出力は行なわれないのでしょうか? 問題ではABCが到着した時点で、データを取り出しています。 ABCDのデータが到着してから、データを取り出すとすれば DCBAになると思われます。 スタックにはデータを入れられる限界があるのでしょうか。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ABC まで到着した時にCBを出力し Dが到着してDAを出力すると CBDAになります。 ア、イ、エの回答については、 一番最初に到着したAが 他のデータより先に出力されると言うことが1つのスタックでは考えられないので該当しません。

KGM
質問者

補足

ABCDが到着したら、その後にDを出力するなど、 全てのデータが到着してから、出力が行なわれない のでしょうか??

関連するQ&A

  • 基本情報技術者問題

    平成16年度春問12のスタックに関する問題で A, B, C ,Dの順に到着するデータに対し1つのスタックだけ用いて出力可能なデータ列はどれか ア、A,D,B,C イ、B,D,A,C ウ、C,B,D,A エ、D,C,A,B で答えはウでした。解答見ても何言ってるか意味不明なのですが わかりやすく解説してくださる人いませんか?

  • 平成16年度の春の問題なんですが

    平成16年度の春の問題なんですが A,B,C,Dの順に到着するデータに対して1つのスタックだけを用いて出力可能なデータ列はどれか 回答を見てもどういうことかさっぱりわかりません。 スタックは最後に格納したものから先にとりだせるので DCBAの順で取り出せると思ったんですが・・CBDAの順のようです。 教えて下さい

  • 中1数学

    次の問題が途中で行き詰まっているのですが、ヒントを下さる方はいませんか? a,b,c,d,eはどれも0でない数であって次のア,イ,ウ,エ,オを満たします。a~eの正負を答えましょう。 アc-aは負 イdはeより小さい ウ b×cは負 エ a×cはdより小さい。 オ c×dはb×eに等しい アよりc<aですよね。でも正負は解りません。イよりd<eですよね。ウよりbとcは異符号ですよね。エよりac<dですが符号が解りません。オよりcd=beですが、これも符号がわかりません。 答えとしては、aとbが正で、残りは負です。逆算すればわかりますが、解けません。ヒントなどを教えていただけないでしょうか。

  • エクセルのデータ抽出です

    データの抽出ですが,オートフィルタでは上手くいきません。 データが以下のように配列してあります(ア~は人名が入ります)     A  B  C ア  1  2  3 イ  2 ウ  3 エ  2  3 このような状況からたとえば,3のデータを有するア・ウ・エ(の3名)を一度に抽出することは出来ますでしょうか。

  • Excelデータ降順 またその隣のセルの値を表示

    この度はよろしくお願い致します。 A列に下のような数字があり、この上位3つを大きい順に並べ、またその行のB列C列も引っ張ってくる方法はありますか?   A  B  C 1  6  あ ア 2  9  い イ 3  7  う  ウ 4  9  え エ 5  8  お オ    ↓   A  B  C 1  9  い イ 2  9  え エ 3  8  お オ データの昇降以外の、関数での解決を考えています。 お知恵を拝借下さい、よろしくお願い致します。

  • 文章

    A~Fの6人が、100mの自由形の競泳を行った。この順位について、ア~エの4人が予想を次のように立てたが、いずれも見事にはずれた。 ア 優勝するのはBかEで、最下位はAかCである。 イ DはAには勝つが、Fには負ける。 ウ AはBより上位で、4着以下だろう。 エ EはFより下位で、4着以内だろう。 まず、条件イから F→D→A の順して、 まず、ここまでてあっているか心配なんですが、 これはどのように求めればいいのですか? コツとかあったら教えてください

  • キューとスタックの問題です、宜しくお願いします

     (多分基本情報処理に関する問題だと思うのですが)データ構造に関する問題です、いくら考えても分かりません、宜しくお願いします。 【問】空の状態のキューとスタックの二つのデータ構造がある。 次の手続きを順に実行した場合、変数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」しかないと思うのですが、誰か誤りを指摘してください、宜しくお願いします。

  • 複数条件の検索

    A列に名称、B、C、D、E列に重量、幅、高さ、長さが記入されていて幅、高さ、長さは小さい順ではありません(順不動)。上記のデーター数(名称)は10行くらいです。このとき他の行にB、C、D、Eの数値を打ち込んだときその数値より大きいA列の名称をA列の上から優先で一つ返す方法がありますでしょうか。 データー例 ア  10  2700  2800  10000 イ  20  3500  2600  13000 ウ  20  2000  3200  12000 エ  25  3500  3500   6000 求める結果 ※  18  2800  2500  10000 の場合※にイを返したいのです。質問がわかりにくいですがより簡単な方法を教えて下さい。

  • 教えてください!!

    『SPI 完全対応 適性検査問題 09』(高橋書店)の中に記載されている、判断推理の問題について質問があります!! 問題)X・Y・Zの3個のダイヤモンドがある。そのうち、2個の値段の和は他の1個のダイヤモンドの値段と同じである。Zのダイヤモンドは一番高くない。次のうち、ありえないのはどれですか。 ア:Xは一番高い イ:ZとXは同じ値段だ ウ:YとXは同じ値段だ エ:Yは一番安い オ:ZとXは値段が違う A)アだけ B)イだけ C)ウだけ D)エだけ E)オだけ F)アとイ G)アとエ H)アとオ I)イとエ J)ウとオ K)どれとも言えない 私が思うに、D)が一番ありえないと思ったんです。なぜならば、問題に“Zのダイヤモンドは一番高くない”と書いてあったからです。  しかし、解答を見ると、C)と書いてありました。もちろん解説は読みましたが、納得がいきません。 一番高くない=一番安いという考え方が間違っているのでしょうか?  誰か教えて下さい・・・・よろしくお願い致します。

  • 小5の算数です

    問題 0より大きい4つの数、ア・イ・ウ・エが有ります。 4つの数の大きさが次のような関係のとき ア・イ・ウ・エを 左から小さい順に書きましょう  ア=イ×1.2  ウ=イ×0.9  エ=ア÷0.8 と、言う問題です。 甥っ子の為に頑張ってみたのですが自信が無くて。。。 宜しくお願いしますm(__)m

専門家に質問してみよう