La fixation de ma mise en œuvre de la “aussitôt l'arbre transversal” algorithme avec une Pile

Partie, c'est que j'ai à mettre en œuvre une non-méthode récursive d'un afinde de la traversée d'un arbre binaire. Je suis un peu coincé. Voici ce que j'ai à ce jour:

public void inorder(BinaryTree v) {
    Stack<BinaryTree> stack = new Stack<BinaryTree>();
    stack.push(v);
    System.out.println(v.getValue());

    while(!stack.isEmpty()) {
        while(v.getLeft() != null) {
            v = v.getLeft();
            stack.push(v);
            System.out.println(v.getValue());
        }

        while(v.getRight() != null) {
            v = v.getRight();
            stack.push(v);
            System.out.println(v.getValue());
        }
                stack.pop();
    }
}

J'ai remarqué qu'il n'imprime que le côté gauche de mon arbre, par exemple,

          A
        /   \
       B     C
     /   \  /  \
    D     E F   G
   /  \
  H     I
 / \
J   K

Donne A B D H J

OriginalL'auteur tenkii | 2013-03-13