Doubly-linked list/Traversal: Difference between revisions
Content added Content deleted
m (→{{header|F Sharp|F#}}: fix heading, as suggested on the Count examples/Full list/Tier 4 talk page) |
(Applesoft BASIC) |
||
Line 374: | Line 374: | ||
</pre> |
</pre> |
||
=={{header|Applesoft BASIC}}== |
|||
<lang gwbasic> 100 REM BUILD THE LIST |
|||
110 FOR I = 20 TO 40 STEP 10 |
|||
120 LET S$ = STR$ (I): GOSUB 260"APPEND" |
|||
130 NEXT I |
|||
140 REM TRAVERSE FORWARDS |
|||
150 LET N = HEAD |
|||
160 FOR Q = 1 TO 1 |
|||
170 IF N < > NIL THEN PRINT S$(N)" ";:N = N(N):Q = 0 |
|||
180 NEXT Q |
|||
190 PRINT |
|||
200 REM TRAVERSE BACKWARDS |
|||
210 LET N = TAIL |
|||
220 FOR Q = 1 TO 1 |
|||
230 IF N < > NIL THEN PRINT S$(N)" ";:N = P(N):Q = 0 |
|||
240 NEXT Q |
|||
250 END |
|||
260 REM APPEND S$ |
|||
270 LET NIL = - 1 |
|||
280 LET P(L) = NIL |
|||
290 LET N(L) = NIL |
|||
300 REM TRAVERSE UNTIL LAST NODE FOUND |
|||
310 FOR Q = 1 TO 1 |
|||
320 IF N(N) < > NIL THEN N = N(N):Q = 0 |
|||
330 NEXT Q |
|||
340 REM NEW NODE |
|||
350 LET S$(L) = S$ |
|||
360 LET N(L) = NIL |
|||
370 IF N < > L THEN P(L) = N |
|||
380 REM POINT THE LAST NODE AT THE NEW NODE |
|||
390 IF N < > L THEN N(N) = L |
|||
400 LET TAIL = L |
|||
410 LET N = TAIL |
|||
420 LET L = L + 1 |
|||
430 RETURN</lang> |
|||
=={{header|ARM Assembly}}== |
=={{header|ARM Assembly}}== |
||
{{works with|as|Raspberry Pi}} |
{{works with|as|Raspberry Pi}} |