class Node

Attributes

left[RW]
right[RW]
value[RW]

Public Class Methods

new(val) click to toggle source
# File lib/binary_tree_struct.rb, line 3
def initialize(val)
  self.value = val
end

Public Instance Methods

traverse(val, operation=:insert) click to toggle source
# File lib/binary_tree_struct.rb, line 7
def traverse(val, operation=:insert)
  eval_statement = operation == :search ? "return 'element does not exist'" : "self.%s = Node.new(%d)"
  if self.value == val
    return self
  elsif val < self.value && !self.left.nil?
    self.left.traverse(val, operation)
  elsif val > self.value && !self.right.nil?
    self.right.traverse(val, operation)
  elsif val < self.value && self.left.nil?
    eval(eval_statement % ['left', val])
  elsif val > self.value && self.right.nil?
    eval(eval_statement % ['right', val])
  end 
end