43 lines
717 B
Rexx
43 lines
717 B
Rexx
|
|
/* REXX ***************************************************************
|
||
|
|
* supports push, pull, and peek
|
||
|
|
* 11.08.2013 Walter Pachl
|
||
|
|
**********************************************************************/
|
||
|
|
stk.=0
|
||
|
|
Call push 123
|
||
|
|
Say empty()
|
||
|
|
say peek()
|
||
|
|
say pull()
|
||
|
|
Say empty()
|
||
|
|
say peek()
|
||
|
|
say push(456)
|
||
|
|
say peek()
|
||
|
|
Exit
|
||
|
|
|
||
|
|
push: Procedure Expose stk.
|
||
|
|
Parse Arg v
|
||
|
|
z=stk.0+1
|
||
|
|
stk.z=v
|
||
|
|
stk.0=z
|
||
|
|
Return v
|
||
|
|
|
||
|
|
peek: Procedure Expose stk.
|
||
|
|
If stk.0=0 Then
|
||
|
|
Return 'stack is empty'
|
||
|
|
Else Do
|
||
|
|
z=stk.0
|
||
|
|
Return stk.z
|
||
|
|
End
|
||
|
|
|
||
|
|
pull: Procedure Expose stk.
|
||
|
|
If stk.0=0 Then
|
||
|
|
Return 'stack is empty'
|
||
|
|
Else Do
|
||
|
|
z=stk.0
|
||
|
|
res=stk.z
|
||
|
|
stk.0=stk.0-1
|
||
|
|
Return res
|
||
|
|
End
|
||
|
|
|
||
|
|
empty: Procedure Expose stk.
|
||
|
|
Return stk.0=0
|