Class: DSA::ListIterator
- Inherits:
-
Object
- Object
- DSA::ListIterator
- Defined in:
- lib/DSA/list.rb
Overview
ListIterator provides iteration on the list and constant time insertion and removal
Instance Method Summary collapse
-
#initialize(node, list) ⇒ ListIterator
constructor
A new instance of ListIterator.
- #insert(e) ⇒ Object
- #next ⇒ Object
- #previous ⇒ Object
- #remove ⇒ Object
- #update(e) ⇒ Object
Constructor Details
#initialize(node, list) ⇒ ListIterator
Returns a new instance of ListIterator.
20 21 22 23 |
# File 'lib/DSA/list.rb', line 20 def initialize(node, list) @node = node @list = list end |
Instance Method Details
#insert(e) ⇒ Object
37 38 39 |
# File 'lib/DSA/list.rb', line 37 def insert(e) @list.insert_node_between @node.prev, @node, ListNode.new(e) end |
#next ⇒ Object
25 26 27 28 29 |
# File 'lib/DSA/list.rb', line 25 def next @node = @node.next raise StopIteration if @node == @list.tail || !@node @node.element end |
#previous ⇒ Object
31 32 33 34 35 |
# File 'lib/DSA/list.rb', line 31 def previous @node = @node.prev raise StopIteration if @node == @list.head || !@node @node.element end |
#remove ⇒ Object
41 42 43 44 |
# File 'lib/DSA/list.rb', line 41 def remove node = @list.remove_node(@node) node.element end |
#update(e) ⇒ Object
46 47 48 |
# File 'lib/DSA/list.rb', line 46 def update(e) @node.element = e end |