As classes Java a seguir são usadas na implementação de árvores binárias.
public class ArvNo { int info;
ArvNo esq=null,dir=null;
}
public class Arv { private ArvNo raiz;
public Arv(){
}
private void percorre(ArvNo r) { if(r==null)
return;
percorre(r.dir);
percorre(r.esq);
System.out.printf("%d ", r.info);
}
public void exibeArvore() { percorre(raiz);
} }
A classe Main abaixo faz uso da classe Arv.
public class Main {
public static void main(String[] args) { Stack<Integer> p;
Arv a;
// Comandos relativos à criação de uma pilha
// e de uma árvore binária.
// // Esses comandos são irrelevantes para a
// resolução da questão.
percorrePilha(p);
System.out.println();
a.exibeArvore();
}
public static void percorrePilha(Stack<Integer> p) { while( !p.isEmpty())
System.out.printf("%d ", p.pop()); } } **(Continuação da questão n o 28)
Admita que o método main acima vá ser executado, e que uma pilha como a mostrada na Figura a seguir vá ser passada como parâmetro para o método percorrePilha.

Qual árvore binária fará com que o comando a.exibeArvore() exiba no console os mesmos números inteiros, e na mesma ordem, que o método percorrePilha?