class Trees::Binary::Node

Attributes

data[RW]
left[RW]
parent[RW]
right[RW]

Public Class Methods

new(data, parent: nil) click to toggle source
# File lib/trees/binary/node.rb, line 13
def initialize(data, parent: nil)
  self.parent = parent
  self.data = data
end

Public Instance Methods

<<(value)
Alias for: insert
insert(value) click to toggle source
# File lib/trees/binary/node.rb, line 22
def insert(value)
  case data <=> value
    when 1 then insert_left(value)
    when -1 then insert_right(value)
    when 0 then false
  end
end
Also aliased as: <<
root?() click to toggle source
# File lib/trees/binary/node.rb, line 18
def root?
  parent.nil? ? true : false
end

Private Instance Methods

insert_left(value) click to toggle source
# File lib/trees/binary/node.rb, line 34
def insert_left(value)
  if left
    left.insert(value)
  else
    self.left = Node.new(value, parent: self)
  end
end
insert_right(value) click to toggle source
# File lib/trees/binary/node.rb, line 42
def insert_right(value)
  if right
    right.insert(value)
  else
    self.right = Node.new(value, parent: self)
  end
end