needhelp83 0 Newbie Poster

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.