Doubly-linked list/Traversal: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Raku}}: Fix up some internal links) |
|||
Line 1,297: | Line 1,297: | ||
Last to first : 4 -> 3 -> 2 -> 1 |
Last to first : 4 -> 3 -> 2 -> 1 |
||
</pre> |
</pre> |
||
=={{header|Lua}}== |
|||
Begin with this: [[Doubly-linked_list/Definition#Lua]], then extend with this: |
|||
<lang lua>-------------- |
|||
-- TRAVERSAL: |
|||
-------------- |
|||
List.iterateForward = function(self) |
|||
local function iter(self, node) |
|||
if node then return node.next else return self.head end |
|||
end |
|||
return iter, self, nil |
|||
end |
|||
List.iterateReverse = function(self) |
|||
local function iter(self, node) |
|||
if node then return node.prev else return self.tail end |
|||
end |
|||
return iter, self, nil |
|||
end |
|||
--------- |
|||
-- TEST: |
|||
--------- |
|||
local list = List() |
|||
for i = 1, 5 do list:insertTail(i) end |
|||
io.write("Forward: ") for node in list:iterateForward() do io.write(node.data..",") end print() |
|||
io.write("Reverse: ") for node in list:iterateReverse() do io.write(node.data..",") end print()</lang> |
|||
{{out}} |
|||
<pre>Forward: 1,2,3,4,5, |
|||
Reverse: 5,4,3,2,1,</pre> |
|||
=={{header|Liberty BASIC}}== |
=={{header|Liberty BASIC}}== |