RosettaCodeData/Task/Stack/IS-BASIC/stack.basic

24 lines
478 B
Plaintext

100 LET N=255 ! Size of stack
110 NUMERIC STACK(1 TO N)
120 LET PTR=1
130 DEF PUSH(X)
140 IF PTR>N THEN
150 PRINT "Stack is full.":STOP
160 ELSE
170 LET STACK(PTR)=X:LET PTR=PTR+1
180 END IF
190 END DEF
200 DEF POP
210 IF PTR=1 THEN
220 PRINT "Stack is empty.":STOP
230 ELSE
240 LET PTR=PTR-1:LET POP=STACK(PTR)
250 END IF
260 END DEF
270 DEF EMPTY
280 LET PTR=1
290 END DEF
300 DEF TOP=STACK(PTR-1)
310 CALL PUSH(3):CALL PUSH(5)
320 PRINT POP+POP