- Rexx 教程
- Rexx - 首页
- Rexx - 概述
- Rexx - 环境
- Rexx - 安装
- Rexx - 插件安装
- Rexx - 基本语法
- Rexx - 数据类型
- Rexx - 变量
- Rexx - 运算符
- Rexx - 数组
- Rexx - 循环
- Rexx - 决策
- Rexx - 数字
- Rexx - 字符串
- Rexx - 函数
- Rexx - 堆栈
- Rexx - 文件 I/O
- Rexx - 文件函数
- Rexx - 子程序
- Rexx - 内置函数
- Rexx - 系统命令
- Rexx - XML
- Rexx - Regina
- Rexx - 解析
- Rexx - 信号
- Rexx - 调试
- Rexx - 错误处理
- Rexx - 面向对象
- Rexx - 可移植性
- Rexx - 扩展函数
- Rexx - 指令
- Rexx - 实现
- Rexx - Netrexx
- Rexx - Brexx
- Rexx - 数据库
- 手持式和嵌入式
- Rexx - 性能
- Rexx - 最佳编程实践
- Rexx - 图形用户界面
- Rexx - Reginald
- Rexx - Web 编程
- Rexx 有用资源
- Rexx - 快速指南
- Rexx - 有用资源
- Rexx - 讨论
Rexx - 堆栈
堆栈有时被称为外部数据队列,但我们遵循常用用法,将其称为堆栈。它是一块逻辑上位于 Rexx 外部的内存块。像 push 和 queue 这样的指令将数据放入堆栈,而像 pull 和 parse 这样的指令则从中提取数据。queued 内置函数报告堆栈中有多少项。
让我们来看一个堆栈的例子。
/* 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 循环将三行数据放入堆栈。它使用 push 指令来执行此操作。我们对这些行进行编号,以便在以 LIFO 顺序检索它们时,它们的顺序是明显的。
push 指令放入堆栈的项目将以 LIFO 顺序检索 -
do j = 1 to 3 push ‘Stack: line #’ || j /* push 3 lines onto the stack */ end
下一个代码块显示了使用 queued 内置函数来发现堆栈中行数,以及使用循环从堆栈中检索所有行的用法 -
do j = 1 to queued() /* retrieve and display LIFO */ pull line say line end
由于这三个项目是通过 push 放入堆栈的,因此它们将以 LIFO 顺序检索。
上述程序的输出如下。
STACK: LINE #3 STACK: LINE #2 STACK: LINE #1
广告