I want to replace the below (non DRY) code:
dir = value > node.data ? "right" : "left"
if value > node.data
if node.right.nil?
node.right = Node.new(value)
else
insert(value, node.right)
end
else
if node.left.nil?
node.left = Node.new(value)
else
insert(value, node.left)
end
end
with something like this:
dir = value > node.data ? "right" : "left"
if node.dir.nil?
node.dir = Node.new(value)
else
insert(value, node.dir)
end
Node is a struct defined like so:
Node = Struct.new(:data, :left, :right)
How can I do this?