Queue/Definition: Difference between revisions

Content added Content deleted
(Applesoft BASIC)
m (correction: don't implement a stack, implement a First In First Out (FIFO) Queue - pop is actually PULL FIRST)
Line 990: Line 990:


=={{header|Applesoft BASIC}}==
=={{header|Applesoft BASIC}}==
<lang ApplesoftBasic> 0 DEF FN E(MPTY) = SP = 0
<lang ApplesoftBasic> 0 DEF FN E(MPTY) = SP = FIRST
10 GOSUB 150EMPTY
10 GOSUB 150EMPTY
20 LET A$ = "A": GOSUB 100PUSH
20 LET A$ = "A": GOSUB 100PUSH
30 LET A$ = "B": GOSUB 100PUSH
30 LET A$ = "B": GOSUB 100PUSH
40 GOSUB 150EMPTY
40 GOSUB 150EMPTY
50 GOSUB 120 POP
50 GOSUB 120PULL FIRST
60 GOSUB 120 POP
60 GOSUB 120PULL FIRST
70 GOSUB 150EMPTY
70 GOSUB 150EMPTY
80 GOSUB 120 POP
80 GOSUB 120PULL FIRST
90 END
90 END
100 PRINT "PUSH "A$
100 PRINT "PUSH "A$
Line 1,004: Line 1,004:
120 GOSUB 130: PRINT "POP "A$: RETURN
120 GOSUB 130: PRINT "POP "A$: RETURN
130 IF FN E(0) THEN PRINT "POPPING FROM EMPTY QUEUE";: STOP
130 IF FN E(0) THEN PRINT "POPPING FROM EMPTY QUEUE";: STOP
140 LET SP = SP - 1:A$ = S$(SP): RETURN
140 A$ = S$(FI): FI = FI + 1 : RETURN
150 PRINT "EMPTY? " MID$ ("YESNO",4 ^ FN E(0),3): RETURN</lang>
150 PRINT "EMPTY? " MID$ ("YESNO",4 ^ FN E(0),3): RETURN</lang>