Hear is given a set of input representing the nodes of a binary tree, write a non recursive algorithm that must be able to give the output in three traversal orders. Write down an algorithm for checking validity of the input, i.e., the program must know if the input given is duplicated, disjoint and has a loop.
The Pre-order Traversal
The process of doing a pre-order traversal iteratively then has the following steps (assuming that a stack is available to hold pointers to the proper nodes):
1. push NULL onto the stack
2. start at the root and begin execution
3. write the information in the node
4. if the pointer to the right is not NULL push
the pointer onto the stack
5. if the pointer to the left is not NULL move the pointer to the node on the left
6. if the pointer to the left is NULL pop the stack
7. repeat steps 3 to 7 until no nodes remain