Friday, September 13, 2013

inorder traversal (iterative)

 public void iterative_inOrder() {
        iterative_inOrder(root);
    }

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

No comments:

Post a Comment