Class: RDG::Tree::RGL::PreOrderIterator

Inherits:
Object
  • Object
show all
Includes:
RGL::GraphIterator
Defined in:
lib/rdg/tree/rgl/pre_order_iterator.rb

Instance Method Summary collapse

Constructor Details

#initialize(tree, root = tree.first) ⇒ PreOrderIterator

Returns a new instance of PreOrderIterator.



9
10
11
12
13
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 9

def initialize(tree, root = tree.first)
  super(tree)
  @root = root
  set_to_begin
end

Instance Method Details

#at_beginning?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 22

def at_beginning?
  @current == @start
end

#at_end?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 26

def at_end?
  visited?(last_leaf(@root))
end

#basic_backwardObject



36
37
38
39
40
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 36

def basic_backward
  @current = ascend(@current)
  unvisit(@current)
  @current
end

#basic_forwardObject



30
31
32
33
34
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 30

def basic_forward
  @current = descend(@current)
  visit(@current)
  @current
end

#set_to_beginObject



15
16
17
18
19
20
# File 'lib/rdg/tree/rgl/pre_order_iterator.rb', line 15

def set_to_begin
  @visited = Hash.new(false)
  @stack = []
  @start = @root
  @current = @start
end