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