@@ -4,13 +4,16 @@ import "fmt"
4
4
5
5
func main () {
6
6
tree := New ()
7
- fmt .Println ("Insert 15 1 2 3 1 3 " )
7
+ fmt .Println ("Insert 15 1 2" )
8
8
tree .Insert (15 )
9
9
tree .Insert (1 )
10
10
tree .Insert (2 )
11
+ fmt .Println ("Size: " , tree .Size ())
12
+ fmt .Println ("Insert 3 1 3" )
11
13
tree .Insert (3 )
12
14
tree .Insert (1 )
13
15
tree .Insert (3 )
16
+ fmt .Println ("Size: " , tree .Size ())
14
17
fmt .Println ("Search 4: " , tree .Search (4 ))
15
18
fmt .Println ("Search 3: " , tree .Search (3 ))
16
19
}
@@ -75,6 +78,11 @@ func (root *Node) insert(newNode *Node) {
75
78
}
76
79
}
77
80
81
+ // Size - return size tree
82
+ func (tree * Bst ) Size () int {
83
+ return tree .size
84
+ }
85
+
78
86
// Search element on tree
79
87
func (tree * Bst ) Search (value int ) bool {
80
88
tree .size --
@@ -94,3 +102,33 @@ func searchElement(root *Node, value int) bool {
94
102
}
95
103
return false
96
104
}
105
+
106
+ // Print the tree in-order
107
+ // Traverse the left sub-tree, root, right sub-tree
108
+ func showInOrder (root * Node ) {
109
+ if root != nil {
110
+ showInOrder (root .left )
111
+ fmt .Println (root .key )
112
+ showInOrder (root .right )
113
+ }
114
+ }
115
+
116
+ // Print the tree pre-order
117
+ // Traverse the root, left sub-tree, right sub-tree
118
+ func showPreOrder (root * Node ) {
119
+ if root != nil {
120
+ fmt .Println (root .key )
121
+ showInOrder (root .left )
122
+ showInOrder (root .right )
123
+ }
124
+ }
125
+
126
+ // Print the tree post-order
127
+ // Traverse left sub-tree, right sub-tree, root
128
+ func showPostOrder (root * Node ) {
129
+ if root != nil {
130
+ fmt .Println (root .key )
131
+ showInOrder (root .left )
132
+ showInOrder (root .right )
133
+ }
134
+ }
0 commit comments