Friday, September 13, 2013

preorder traversal (iterative)

  void iterative_preOrder(Node node) {
        if (node == null) {
            return;
        }
        Stack<Node> stack = new Stack<Node>();
        int maxSize=0,size=0;
        while (true) {
            while (node != null) {
                System.out.print(node.data + " , ");
                stack.push(node);
                size++;
                node = node.leftChild;
                if(node==null){
                    if(maxSize< size)
                        maxSize=size;
                }
            }
            if (stack.size() == 0) {
                break;
            }
            node = stack.pop();
            size--;
            node = node.rightChild;
        }
        System.out.print("\n preorder :max stackSize ="+maxSize);
    }

No comments:

Post a Comment