Ajuda com percursos (Arvores Binárias de Busca)

Conheço os 3 tipos de percursos:

public void preOrdem(NoArvoreBin no) { if (no != null) { // Visitar o no preOrdem(no.esq); preOrdem(no.dir); } }

[code]public void inOrdem(NoArvoreBin no) {
if (no != null) {

		inOrdem(no.esq);
                    // Visitar o no
		inOrdem(no.dir);
	}
}[/code]

e

[code]public void posOrdem(NoArvoreBin no) {
if (no != null) {

		posOrdem(no.esq);
                    posOrdem(no.dir);
                    // Visitar o no


	}
}[/code]

Alguem poderia dizer a logica de como seria a implementação desses 3 percursos sem usar a recursividade? Procurei pelo google mas não achei, o que me falaram é que usa Pilha, mas eu ainda não consegui achar a lógica.

Grato!