Method: BiDimensionalTree#balance_vert

Defined in:
lib/bi-dimensional-access.rb

#balance_vert(node = @root) ⇒ Object

Balance the tree



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/bi-dimensional-access.rb', line 165

def balance_vert(node = @root)
  unless balanced_vert_helper(node)
    balance_vert_helper(node, node)
  end
  unless node.east.nil?
    unless balanced_vert_helper(node.east)
      node.east = balance_vert_helper(node.east, node.east)
    else
      balance_vert(node.east)
    end
  end
  unless node.west.nil?
    unless balanced_vert_helper(node.west)
      node.west = balance_vert_helper(node.west, node.west)
    else
      balance_vert(node.west)
    end
  end
end