class TreeWithNode::Tree

Attributes

parent[RW]

Public Class Methods

new(array) click to toggle source
# File lib/BinarySearchk/tree.rb, line 5
def initialize(array)
    @tree = build_tree(array)
    @parent = @tree.value
end

Public Instance Methods

dfs_rec(target_value, node = @tree) click to toggle source
# File lib/BinarySearchk/tree.rb, line 32
def dfs_rec(target_value, node = @tree)
    if node.nil?
        return nil
    else
        return "Found #{node.value}" if node.value == target_value
        search_left_child = dfs_rec(target_value, node.left)
        search_right_child = dfs_rec(target_value, node.right)
    end
    return (search_right_child or search_left_child)
end

Private Instance Methods

build_tree(array) click to toggle source
# File lib/BinarySearchk/tree.rb, line 45
def build_tree(array)
    right = array.length-1
    left=0
    index_mid = (left + (right-left)) / 2
    tree = NodeOfTree::Node.new(array[index_mid])
    array.each {|n| tree.insert(n) }
    tree
end