37 lines
817 B
Text
37 lines
817 B
Text
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
|