Skip to content

Commit b590be1

Browse files
committed
Add inorder, preorder, postorder traversal in Binary Tree
1 parent 074ec78 commit b590be1

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

Diff for: BinaryTree/BinaryTree.go

+23-3
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,32 @@ func (tree *BinaryTree) SearchItem(i int) (*Node, bool) {
5151
return nil, false
5252
}
5353

54-
func (tree *BinaryTree) GetItems(subtree *Node, callback func(int)) {
54+
func (tree *BinaryTree) InorderTraversal(subtree *Node, callback func(int)) {
5555
if subtree.left != nil {
56-
tree.GetItems(subtree.left, callback)
56+
tree.InorderTraversal(subtree.left, callback)
5757
}
5858
callback(subtree.data)
5959
if subtree.right != nil {
60-
tree.GetItems(subtree.right, callback)
60+
tree.InorderTraversal(subtree.right, callback)
6161
}
6262
}
63+
64+
func (tree *BinaryTree) PreorderTraversal(subtree *Node, callback func(int)) {
65+
callback(subtree.data)
66+
if subtree.left != nil {
67+
tree.PreorderTraversal(subtree.left, callback)
68+
}
69+
if subtree.right != nil {
70+
tree.PreorderTraversal(subtree.right, callback)
71+
}
72+
}
73+
74+
func (tree *BinaryTree) PostorderTraversal(subtree *Node, callback func(int)) {
75+
if subtree.left != nil {
76+
tree.PostorderTraversal(subtree.left, callback)
77+
}
78+
if subtree.right != nil {
79+
tree.PostorderTraversal(subtree.right, callback)
80+
}
81+
callback(subtree.data)
82+
}

0 commit comments

Comments
 (0)