みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2001-11-15 11:58:20

QNo.169064

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>二ヶ月前くらいにVB
>スタックとキューとは

とありますが、これを説明するには、レジスタなどの説明から入って、図解でやらないと難しいですね・・・

ところでVBの本か何かを見たのですか?ぼくは今まで「スタック/キュー」という言葉の出てくるVBの本は、あまり見た事がないですよ。他の言語でしかあまり使わない言葉ですね。
メモリの開放を使用としてるのですか?

もし単純にスタック/キューの事を知りたいだけなら、VBの質問というより、プログラミング全般で質問した方が、適切な回答が得られるかも?

一応参考URLを載せておきます。
言語はCで書かれてますが、単純な演算子しか出てないので、理解できると思います。
たぶん本に書いてあるような事を書いてるだけだと思いますが・・・

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

投稿日時 - 2001-11-15 15:47:16

お礼

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

投稿日時 - 2001-11-15 18:18:56

ANo.1

スタック:LIFO(Last In First Out)後から入った物が先に処理される。
キュー :FIFO(First In First Out)先に入ったものが先に処理される。

キューは通常の行列がすべて該当します。一番公平(?)な処理方法です。
スタックは新聞をダンボール箱に積んだり、一つしか入口のないバスに沢山の人を乗せたりした時に、出てくる順番が、乗った順番と逆転するものです。

特徴(長所、短所)というより、目的に合わせて使うと考えた方がいいです。

さて、本題の用途ですが、圧倒的にキューがよく使われます。
スタックを使うところだけ抜き出した方が楽です。すぐ思い付くものは
(1)サブルーチンコールの戻りアドレスの待避
(2)再帰処理の時のデータエリアの待避
(3)レジスタ間のデータの交換(入替)・・・アセンブラ
(4)コンパイラが数式を解読する時のバッファー
等です。

投稿日時 - 2001-11-15 12:24:30

お礼

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

投稿日時 - 2001-11-15 18:20:50

あなたにオススメの質問