class DSA::ListIterator
ListIterator
provides iteration on the list and constant time insertion and removal
Public Class Methods
new(node, list)
click to toggle source
# File lib/DSA/list.rb, line 20 def initialize(node, list) @node = node @list = list end
Public Instance Methods
insert(e)
click to toggle source
# File lib/DSA/list.rb, line 37 def insert(e) @list.insert_node_between @node.prev, @node, ListNode.new(e) end
next()
click to toggle source
# File lib/DSA/list.rb, line 25 def next @node = @node.next raise StopIteration if @node == @list.tail || !@node @node.element end
previous()
click to toggle source
# File lib/DSA/list.rb, line 31 def previous @node = @node.prev raise StopIteration if @node == @list.head || !@node @node.element end
remove()
click to toggle source
# File lib/DSA/list.rb, line 41 def remove node = @list.remove_node(@node) node.element end
update(e)
click to toggle source
# File lib/DSA/list.rb, line 46 def update(e) @node.element = e end