Binary Tree Traversal

There are different technique for tree traversal.

  • Pre-order Traversal
  • Post-order Traversal
  • In-order Traversal

Pre-order Traversal

The Pre-order Traversal follows this process-

  • It first process the root node, then traverse the left subtree in pre-order, then traverse the right subtree in pre-order.
  • If there are no any left or right children of node or node is empty, then the traversal is nothing performed.

Pre-order Traversal Algorithm

Suppose there is a binary tree, whose root node is given by pointer T. The Pre-order traversal process is given below.

STEP 1: [Check for empty tree]
IF T = NULL
Then print('Tree is empty')
	return
else print(DATA(T))
STEP 2: [Process the left subtree]
IF LPTR(T) != NULL
Then PPREORDER(LPTR(T))
STEP 3: [Process the right subtree] 
IF RPTR(T) != NULL
Then PPREORDER(RPTR(T))
STEP 4: Exit

Pre-order Traversal Example

Suppose, we have the following binary tree.

Preorder

Pre-order Traversal : 12, 10, 13, 35, 19, 17, 22



Post-order Traversal

The Post-order Traversal follows this process-

  • It first traverse the left subtree in post-order, then traverse the right subtree in post-order, then process the root node, .

Post-order Traversal Algorithm

Suppose there is a binary tree, whose root node is given by pointer T. The Post-order traversal process is given below.

STEP 1: [Check for empty tree]
IF T = NULL
Then print('Tree is empty')
	return
else print(DATA(T))
STEP 2: [Process the left subtree]
IF LPTR(T) != NULL
Then PPOSTORDER(LPTR(T))
STEP 3: [Process the right subtree] 
IF RPTR(T) != NULL
Then PPREORDER(RPTR(T))
STEP 4: [Process the root node] 
print(DATA(T))
STEP 5: Exit

Post-order Traversal Example

Suppose, we have the following binary tree.

Post-order

Post-order Traversal : 13, 10, 17, 19, 22, 35, 12





In-order Traversal

The In-order Traversal follows these process-

  • It first traverse the left subtree in in-order, then process the root node, then traverse the right subtree in in-order.

In-order Traversal Algorithm

Suppose there is a binary tree, whose root node is given by pointer T. The In-order traversal process is given below.

STEP 1: [Check for empty tree]
IF T = NULL
Then print('Tree is empty')
	return
else print(DATA(T))
STEP 2: [Process the left subtree]
IF LPTR(T) != NULL
Then RINORDER(LPTR(T))
STEP 3: [Process the root node] 
print(DATA(T))
STEP 4: [Process the right subtree] 
IF RPTR(T) != NULL
Then PPREORDER(RPTR(T))
STEP 5: Exit

In-order Traversal Example

Suppose, we have the following binary tree.

In-order

In-order Traversal : 13, 10, 12, 19, 17, 35, 22