Jump to content

Doubly-linked list/Traversal: Difference between revisions

(→‎{{header|Raku}}: Fix up some internal links)
Line 1,297:
Last to first : 4 -> 3 -> 2 -> 1
</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}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.