import pila.Pila;

public class VisitaPreordine {


  public static void visitaRicorsiva(NodoBin a) {
    if (a == null) //albero vuoto
      return;
    else {
      System.out.print(a.info + " ");  //opera su nodo corrente
      visitaRicorsiva(a.sinistro);     //visita sottoalb. sin.
      visitaRicorsiva(a.destro);       //visita sottoalb. des.
    }
  }


  public static void visitaIterativa(NodoBin alb) {

    Pila stack = new Pila();
    stack.push(alb);
    
    while (!stack.estVuota()) {
      NodoBin a = (NodoBin)stack.top();
      stack.pop();
      if (a != null) {//albero non vuoto
        System.out.print(a.info + " ");  //opera su nodo corrente
        stack.push(a.destro);            //richiedi visita sottoalb. des.
        stack.push(a.sinistro);          //richiedi visita sottoalb. sin.
      }
    }
  }
  
}
