iterative dfs in tree
import java.util.Stack;
class Node
{
int data;
Node left, right;
public Node(int item)
{
data = item;
left = right = null;
}
}
@SuppressWarnings("unchecked")
class BinaryTree
{
Node root;
public static void inOrderTraversal(Node root)
{
Stack<Node> stack = new Stack();
Node curr = root;
while (!stack.empty() || curr != null)
{
if (curr != null)
{
stack.push(curr);
curr = curr.left;
}
else
{
curr = stack.pop();
System.out.print(curr.data + " ");
curr = curr.right;
}
}
}
}