Doubly-linked list/Traversal: Difference between revisions

Added BBC BASIC
(fix bare <lang> tags (and other small issues))
(Added BBC BASIC)
Line 34:
=={{header|AutoHotkey}}==
see [[Doubly-linked list/AutoHotkey]]
 
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
<lang bbcbasic> DIM node{pPrev%, pNext%, iData%}
DIM a{} = node{}, b{} = node{}, c{} = node{}
a.pNext% = b{}
a.iData% = 123
b.pPrev% = a{}
b.iData% = 789
c.iData% = 456
PROCinsert(a{}, c{})
PRINT "Traverse forwards:"
pnode% = a{}
REPEAT
!(^node{}+4) = pnode%
PRINT node.iData%
pnode% = node.pNext%
UNTIL pnode% = 0
PRINT "Traverse backwards:"
pnode% = b{}
REPEAT
!(^node{}+4) = pnode%
PRINT node.iData%
pnode% = node.pPrev%
UNTIL pnode% = 0
END
DEF PROCinsert(here{}, new{})
LOCAL temp{} : DIM temp{} = node{}
new.pNext% = here.pNext%
new.pPrev% = here{}
!(^temp{}+4) = new.pNext%
temp.pPrev% = new{}
here.pNext% = new{}
ENDPROC
</lang>
Output:
<pre>Traverse forwards:
123
456
789
Traverse backwards:
789
456
123</pre>
 
=={{header|C}}==