Class: YmDataTree::Tree

Inherits:
Object
  • Object
show all
Defined in:
lib/ym_data_tree.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTree

Returns a new instance of Tree.



6
7
8
9
10
11
# File 'lib/ym_data_tree.rb', line 6

def initialize
  @root = nil
  @in_order_traversal_datas = []
  @post_order_traversal_datas = []
  @pre_order_traversal_datas = []
end

Instance Attribute Details

#rootObject

Returns the value of attribute root.



12
13
14
# File 'lib/ym_data_tree.rb', line 12

def root
  @root
end

Instance Method Details

#clearObject



41
42
43
44
45
# File 'lib/ym_data_tree.rb', line 41

def clear
  @pre_order_traversal_datas = []
  @in_order_traversal_datas = []
  @post_order_traversal_datas = []
end

#insert(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/ym_data_tree.rb', line 13

def insert(data)

  @tempNode = Node.new
  @tempNode.data = data
  if @root == nil
    @root = @tempNode
  else
    @current = @root
    @parent = nil
    status = true
    while status
      @parent = @current
      if data < @parent.data
        @current = @current.leftChild
        if @current == nil
          @parent.leftChild = @tempNode
          status = false
        end
      else
        @current = @current.rightChild
        if @current == nil
          @parent.rightChild = @tempNode
          status = false
        end
      end
    end
  end
end

#traverse(node, *command) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/ym_data_tree.rb', line 46

def traverse(node,*command)
  clear
  if command.first.eql? :pre_order_traversal
    pre_order_traversal(node)
  elsif command.first.eql? :in_order_traversal
    in_order_traversal(node)
  elsif command.first.eql? :post_order_traversal
    post_order_traversal(node)
  elsif command.first.eql? :breadth_first_traversal
    breadth_first_traversal(node)
  elsif command.first.eql? :deep_first_traversal
    deep_first_traversal(self,command[1])
  else
    puts "Unknown Command"
  end
end