Skip to content

Commit 378e50d

Browse files
committed
binary tree in golang
1 parent d455fd0 commit 378e50d

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

go/btree/btree.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
type tree struct{
8+
left,right *tree
9+
data int
10+
}
11+
12+
//inorder traversal
13+
func traverse(t *tree){ // passing the root and channel
14+
fmt.Println("in traverse",t.data)
15+
if t == nil {
16+
return
17+
}else {
18+
traverse(t.left)
19+
fmt.Println(t.data)
20+
traverse(t.right)
21+
}
22+
}
23+
24+
func insert(t *tree, l *tree) *tree {
25+
if t == nil{
26+
return t
27+
}
28+
if l.data < t.data {
29+
fmt.Println("Inserting into left")
30+
insert(t.left,l)
31+
}else{
32+
fmt.Println("Inserting into right")
33+
insert(t.right,l)
34+
}
35+
return t
36+
}
37+
38+
39+
func main() {
40+
var t = new(tree)
41+
k := 80
42+
t.data = k
43+
var newnode = new(tree)
44+
newnode.data = 20
45+
insert(t,newnode)
46+
newnode.data = 90
47+
insert(t,newnode)
48+
traverse(t)
49+
50+
}
51+

0 commit comments

Comments
 (0)