Hello there.
In this article, we will be traversing a binary tree, and we also print the data stored in those node.
In the inorder traversal, we print the left child - root - right child.
Here is simple recursive algorithm to do that.
- go to left child - print the left child
- print the root
- go to right child - print the right child
Recursion can be a little difficult to understand. But, that's ok, no one understands that in the beginning.
And, we also have to add a termination case to end the recursion. Because, we do not want to blow out the stack
The recursion terminator.
if (head == null) return ;
Inorder Traversal :-
//print head between left and right childs
public static void inorder(BinaryTreeNode head) {
if (head == null) return ;
inorder(head.left);
System.out.println(head.name);
inorder(head.right);
}
Let us write a test code to use the above function.
public class BinaryTreeTraversal {
public static void main(String ... args) {
BinaryTreeNode head = CreateBinaryTree.createCompleteBinaryTree('A', 'B', 'Z', 'E', 'P', 'Q');
System.out.println("--InOrder--");
inorder(head);
}
}
We are using BinaryTreeNode as a node for binary tree and we are using utility function -which creates a binary tree is defined in this article - here.
The output of above code.
--InOrder--
E
B
P
A
Q
Z
So, we just traversed the binary tree in inorder.
thanks for reading.. bye for now.. :)