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
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