Be the first user to complete this post

Add to List 
Binary Tree  Preorder Traversal  Non Recursive Approach
Objective: Given a binary tree, write a nonrecursive or iterative algorithm for preorder traversal.
Example:
Earlier we have seen "What is preorder traversal and recursive algorithm for it", In this article, we will solve it in an iterative/Non Recursive manner.
Since we are not using recursion, we will use the Stack to store the traversal, we need to remember that preorder traversal is, the first traverse the root node then the left node followed by the right node.
Pseudo Code:
 Create a Stack.
 Print the root and push it to Stack and go left i.e root=root.left and till it hits the NULL.
 If the root is null and Stack is empty Then
 return, we are done.
 Else
 Pop the top Node from the Stack and set it as, root = popped_Node.
 Go right, root = root.right.
 Go to step 2.
 End If
See the animated image below and code for more understanding.
Code:
Output:
1 2 4 5 3 6 7 1 2 4 5 3 6 7
Also Read: