Rexx-stacks
提供:Dev Guides
Rexx-スタック
スタックは外部データキューと呼ばれることもありますが、一般的な使用法に従い、スタックと呼びます。 Rexxの論理的に外部にあるメモリブロックです。 プッシュやキューなどの命令はデータをスタックに配置し、プルやプルなどの命令はスタックからデータを抽出します。 キューに組み込まれた組み込み関数は、スタックにあるアイテムの数を報告します。
スタックの例を見てみましょう。
/*STACK:*/
/* */
/*This program shows how to use the Rexx Stack as either a*/
/*stack or a queue.*/
do j = 1 to 3
push ‘Stack: line #’ || j
/*push 3 lines onto the stack*/
end
do j = 1 to queued()
/*retrieve and display LIFO*/
pull line
say line
end
do j = 1 to 3 queue ‘Queue: line #’ || j
/*queue 3 lines onto the stack*/
end
do queued()
/*retrieve and display FIFO*/
pull line
say line
end
exit 0
プログラムの最初のdoループは、3行のデータをスタックに配置します。 これを行うには、プッシュ命令を使用します。 行に番号を付けて、LIFO順序で取得したときに順序が明確になるようにします。
プッシュ命令によってスタックに配置されたアイテムは、LIFOの順序で取得されます-
do j = 1 to 3
push ‘Stack: line #’ || j /*push 3 lines onto the stack*/
end
次のコードブロックは、スタック上のすべての行を取得するためのループだけでなく、スタック上の行の数を発見するためにキューイングされた組み込み関数の使用を示しています-
do j = 1 to queued() /*retrieve and display LIFO*/
pull line
say line
end
3つのアイテムはプッシュによってスタックに配置されたため、LIFOの順序で取得されます。
上記のプログラムの出力は次のようになります。
STACK: LINE #3
STACK: LINE #2
STACK: LINE #1