Write steps for algorithm for In-order Traversal
This process when implemented iteratively also needs a stack and a Boolean to prevent the execution from traversing any portion or area of a tree twice. The common process of in-order traversal follows the following steps:
1. push a NULL onto the given stack.
2. starting with the root, proceed down the left side of the tree. As long as there is one more left node following the current node,
push the pointer to the current node onto the stack and move to the left node which follows it.
3. when there are no further left nodes following the current node, process the current node.
4. check to see if the last left node has a right node(it certainly doesn't have a left node).
5. if there is a right node then there will be subtree to the right. This should be further processed in following steps 2 to 4.
6. if there is no right node in it then pop the last node from the stack (back up one node). Process this node and as this node has a left subtree that has already been processed, move to the right of the node and start looking for a left and right subtree again.