## Binary tree post order traversal in java without recursion – example tutorial java67 stock ticker for oil futures

In the last article, I have shown you how to implement post order traversal in a binary tree using recursion and today I am going to teach you about post order traversal without recursion world **markets futures**. To be honest, the iterative algorithm of post-order traversal is the toughest among the iterative pre-order and in-order traversal algorithm gold usd. The process of post order traversal remains same but the algorithm to achieve that effect is different computer binary code. Since post-order traversal is a depth-first algorithm, you go deep before you go wide python binary. The left subtree is visited first, followed by right subtree and finally the value of a node is printed exchange rate us canada. This is the reason why the value of root is printed last in the post-order traversal algorithm.

Now, let’s see the utility of post-order traversal algorithm, what do you get from it and when do yo use post-order algorithm to traverse a binary tree?

As oppose to inorder traversal which prints node of **the binary** search tree in sorted order and can also be used to flatten a binary tree in the same order it was created, post order traversal can be used to inspect leaves before you inspect root usd football. It can also be used to generate postfix sequence.

Now, one of the frequently ask question is when do you use pre-order, post-order, or in-order traversal while dealing with binary tree data structure? The general point regarding usage of traversal algorithm is based on the requirement of your application e.g. if you want to inspect all roots before leaves use pre-order and if you want to inspect leaves before root then use post-order traversal __crude oil futures marketwatch__. If you want to visit all nodes in the sorted order then you can use in-order traversal algorithm dollar to rupee exchange rate today. You can also read Introduction to Algorithms to learn more about when to use pre-order, in-order, and post-order traversals.

The recursive algorithm of post order traversal which we have seen in the previous article was quite similar to recursive pre-order and recursive in order algorithms, all you need you to do was adjust the order of recursive function call to match the order on which left subtree, right subtree, and root needs to traversed, but iterative algorithm of post-order traversal is very different than iterative pre-order and in-order traversal.

In fact, it’s the most difficult to implement among three traversal algorithm **gender identity**. Sure, you still use an explicitly Stack data structure to store elements, but the backtracking and then exploring right subtree is a little bit tricky to implement.

If you look at this method you will find that we are examining leaves before examining root *gold price in usa*. We start the post order traversal from the root by pushing it into a Stack and then loop until out Stack is empty. At each iteration, we peek() the element from Stack i.e. retrieve it without removing and check if it’s a leaf, if yes then we pop() the element and print its value, which means the node is visited.

If it’s not a leaf then we check if it has a right node, if yes we store into a tree and set it to null, similarly, we check if it has left a node, if yes we push into the stack and then mark it null. We first insert right node because Stack is a LIFO (last in first out) data structure and as per post order traversal we need to explore left subtree before right subtree

Here is our complete Java program to implement post order traversal of a binary tree in Java without using recursion. The iterative algorithm is encapsulated inside the postOrder() method. We have used the same BinaryTree and TreeNode class to implement binary tree and then added the postOrder() method to print all nodes of a binary tree into post order. The algorithm we have used doesn’t need recursion and it instead uses a while loop and a Stack, traditional tool to convert a recursive algorithm to an iterative one.