package ab;
import java.util.Enumeration;
import iv.FileAttente;

/** Classe décrivant une énumération par niveau d'un arbre binaire. */
public class EnumerationParNiveau implements Enumeration {
  ArbreBinaire a;
  FileAttente f ;

  public EnumerationParNiveau(ArbreBinaire a) {
    this.a=a;
    this.f = new FileAttente();
    f.rentrer(a);
    }

   public boolean hasMoreElements() {
     return ( ! f.vide());}

   public Object nextElement() {
     if (this.f.vide()) return null;
     ArbreBinaire a = (ArbreBinaire) this.f.premier();
     this.f.sortir();
     if (a.gauche != null) this.f.rentrer(a.gauche);                                 if (a.droit != null) this.f.rentrer(a.droit);
     return a.racine;
     }
}

