This is my first program and Ruby and I am trying to get some help on writing a BST.
require 'rational'
class BST
def insert(newo)
if ! @o
@o = newo
else
case @o <=> newo
when 1
@left = BST.new if ! @left
@left.insert(newo)
when -1
@right = BST.new if ! @right
@right.insert(newo)
when nil
puts "#{@o} <=> #{newo} not defined"
end
end
end
def to_s; @o; end
def in_order
[@left ? @left.in_order : [], @o, @right ? @right.in_order : []]
end
def pre_order
[@o ? @o.pre_order : [], @o, @right ? @right.pre_order : []]
end
#def post_order
# [@left ? @left.in_order : [], @o, @right ? @right.in_order : []]
#end
end
tree=BST.new
tree.insert(0)
tree.insert(5)
tree.insert(1)
tree.insert(10)
puts tree.pre_order
I tried creating a pre_order method and I continue getting an undefined method error whenever trying to use it. What exactly am I doing wrong with this? The in_order method works, now I am trying to get pre_order and post_order works.