Rexx - Tumpukan
Tumpukan terkadang disebut antrean data eksternal, tetapi kami mengikuti penggunaan umum dan menyebutnya sebagai tumpukan. Ini adalah blok memori yang secara logis berada di luar Rexx. Instruksi seperti data tempat dorong dan antrian ke dalam tumpukan, dan instruksi seperti tarik dan parse tarik mengekstrak data darinya. Fungsi built-in antrian melaporkan berapa banyak item dalam tumpukan.
Mari kita lihat contoh tumpukan.
/* 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
Perulangan do pertama dalam program menempatkan tiga baris data ke tumpukan. Ini menggunakan instruksi push untuk melakukan ini. Kami memberi nomor pada garis sehingga ketika mereka diambil dalam urutan LIFO, urutannya terlihat.
Item yang ditempatkan ke dalam tumpukan dengan instruksi dorong diambil dalam urutan LIFO -
do j = 1 to 3
push ‘Stack: line #’ || j /* push 3 lines onto the stack */
end
Blok kode berikutnya menunjukkan penggunaan fungsi built-in antrian untuk menemukan jumlah baris pada tumpukan, serta perulangan untuk mengambil semua baris dari tumpukan -
do j = 1 to queued() /* retrieve and display LIFO */
pull line
say line
end
Karena tiga item ditempatkan di tumpukan melalui push, mereka diambil dalam urutan LIFO.
Output dari program di atas adalah sebagai berikut.
STACK: LINE #3
STACK: LINE #2
STACK: LINE #1