「キュー」と「スタック」 その1
キュー」と「スタック」は、共にデータを処理するためのもので、パソコンのいろいろな所で使われています。
プロデルで使う場合は、プログラムの冒頭で作成します。すると、メモリ上に、データを保管するための一定の領域が確保されます。その領域に、データを入れたり取り出したりしながら、さまざまな処理を行なっていきます。
■「キュー」と「スタック」の違い
①キュー (queue) … 「先入れ先出 First In First Out」、別名「行列法」と呼ばれる方法でデータを処理します。
ラーメン屋の行列では、一番先に並んだ客が、一番先にラーメンを食べることが出来ます。その次は、二番目に並んでいた客が……という具合に、先に格納されたデータから先に処理される、という方法のため、こう呼ばれています。
②スタック (stack) … 「後入れ先出し Last In First Out」と呼ばれる方法でデータを処理します。「キュー」とは逆に、一番後に入れたデータから先に処理されます。
プロデルのリファレンスでは、床の上に本を積んでいき、一番上=一番最後に積んだ本から先に処理する、と説明されています。
■プログラムの例
実は私は、スタックはサンプルを試したことがあるくらいで、実際のプログラムでは使ったことがまだありません。
したがって、プログラムの例と説明は、キューだけになります。よろしく。
──────────────────────────────
FIFOというキューを作る
フォルダ配列は、「[デスクトップ]」のフォルダの一覧
フォルダ配列を要素にそれぞれ繰り返す
要素を、FIFOに並ばせる
繰り返し終わり
ファイル配列は、「[デスクトップ]」のファイルの一覧
ファイル配列を要素にそれぞれ繰り返す
要素を、FIFOに並ばせる
繰り返し終わり
FIFOの全要素を表示する
──────────────────────────────
■プログラムの説明
──────────────────────────────
FIFOというキューを作る
ーー「FIFO」という名前のキューを作成します。
ーー名前は、任意の名前を付けることが出来ます。
ーーこれで、データを保管する場所(領域)が確保されます。
ーーこの保管場所を使えるのは、プログラムの実行中だけで、
ーープログラムを終了すると、保管場所も中のデータも消えてしまいます。
ーー保管したデータを保持しておいて、また利用したい時は、
ーー設定ファイルに保存するか、テキストファイルなどに書き出します。
フォルダ配列は、「[デスクトップ]」のフォルダの一覧
ーーデスクトップ上のフォルダ(アイコン)の一覧を取得します。
ーー「ごみ箱」など、一部のフォルダは取得することが出来ません。
フォルダ配列を要素にそれぞれ繰り返す
要素を、FIFOに並ばせる
ーーフォルダを、一つずつキュー に入れて(並ばせて)いきます。
ーーフォルダの数だけ、この処理を繰り返します。
繰り返し終わり
ファイル配列は、「[デスクトップ]」のファイルの一覧
ーー同じくデスクトップ上のアイコン(主にショートカット)を、
ーーキュー に入れていきます。
ファイル配列を要素にそれぞれ繰り返す
要素を、FIFOに並ばせる
繰り返し終わり
FIFOの全要素を表示する
ーー上の手順で、キュー に入れたデータの一覧を表示させます。
──────────────────────────────
■注意
元のデータの形によっては、「キュー」の全要素が、配列の形で保管されないケースがあります。その時はエラーになりますので、次のように書いてみて下さい。
────────────────
内容は、FIFOの全要素
配列は、内容を配列化したもの
────────────────
■参考
リファレンス > 基本機能 > キュー
http://rdr.utopiat.net/docs/reference/core/queue.htm
リファレンス > 基本機能 > スタック
http://rdr.utopiat.net/docs/reference/core/stack.htm
コメント
コメントを投稿