「キュー」と「スタック」 その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

                             

コメント

このブログの人気の投稿

■アクセシブルな開発環境「日本語プログラミング言語・プロデル」の紹介

ドキュメント検索 と 掲示板

「キュー」と「スタック」 その2