• 締切済み

スタックとキューの使い所

こんにちは。つい二ヶ月前くらいにVBを始めた初心者なのですが、データ構造で、スタックとキューの二つのデータ構造の特徴(長所&短所)と、この二つを使うときというのは例えばどういう時なのかが全然わかりません。どなたかぜひ、教えていただけないでしょうか?

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

>二ヶ月前くらいにVB >スタックとキューとは とありますが、これを説明するには、レジスタなどの説明から入って、図解でやらないと難しいですね・・・ ところでVBの本か何かを見たのですか?ぼくは今まで「スタック/キュー」という言葉の出てくるVBの本は、あまり見た事がないですよ。他の言語でしかあまり使わない言葉ですね。 メモリの開放を使用としてるのですか? もし単純にスタック/キューの事を知りたいだけなら、VBの質問というより、プログラミング全般で質問した方が、適切な回答が得られるかも? 一応参考URLを載せておきます。 言語はCで書かれてますが、単純な演算子しか出てないので、理解できると思います。 たぶん本に書いてあるような事を書いてるだけだと思いますが・・・

参考URL:
http://www.ics.nara-wu.ac.jp/~makato/programmingpractice1/memo/lecturenotes_algorithm/ln4_plain.html
cremona
質問者

お礼

VBの本に載っていました。そうですかぁ…。いや、メモリの開放はでてきてないですけど…。とにかくありがとうございました。すぐに参考にのせていただいたページへ行ってみます!!

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

スタック:LIFO(Last In First Out)後から入った物が先に処理される。 キュー :FIFO(First In First Out)先に入ったものが先に処理される。 キューは通常の行列がすべて該当します。一番公平(?)な処理方法です。 スタックは新聞をダンボール箱に積んだり、一つしか入口のないバスに沢山の人を乗せたりした時に、出てくる順番が、乗った順番と逆転するものです。 特徴(長所、短所)というより、目的に合わせて使うと考えた方がいいです。 さて、本題の用途ですが、圧倒的にキューがよく使われます。 スタックを使うところだけ抜き出した方が楽です。すぐ思い付くものは (1)サブルーチンコールの戻りアドレスの待避 (2)再帰処理の時のデータエリアの待避 (3)レジスタ間のデータの交換(入替)・・・アセンブラ (4)コンパイラが数式を解読する時のバッファー 等です。

cremona
質問者

お礼

そうですかぁ…。ナルホド。じゃあキューの方が重要なんですね…。ありがとうございました!!

関連するQ&A

専門家に質問してみよう