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 = |
<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 |
50 GOSUB 120PULL FIRST |
||
60 GOSUB |
60 GOSUB 120PULL FIRST |
||
70 GOSUB 150EMPTY |
70 GOSUB 150EMPTY |
||
80 GOSUB |
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 |
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> |
||