/** 
    MonBrin code un brin d'ADN sous forme de liste simplement chaînée.

    Plusieurs instances de MonMaillon reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.

    On n'utilise pas java.util et on recode tout.

    Cette version a un problème : la navigation n'est pas raisonnable
*/
public class MonBrin {

    private MonMaillon debut;
    private MonMaillon fin;

    //Le constructeur fabrique un brin à partir du premier maillon p;
    public MonBrin(MonMaillon p){
        this.debut = p;
        while (suivant=p.getSuiteMaillon() != null){
            p = suivant;
        }
        this.fin = p;
    }

    public MonMaillon getDebut(){
        return this.debut;
    }

    public MonMaillon getFin(){
        return this.fin;
    }

    public void addDernier(MonMaillon dernier){
        this.fin.setSuiteMaillon(dernier);
        this.fin = dernier;
    }

    public void addPremier(MonMaillon premier){
        premier.setSuiteMaillon(this.debut);
        this.debut = premier;
    }

    public void removePremier(){
        MonMaillon maillonASupprimer = this.debut;
        this.debut = this.debut.getSuiteMaillon();
    }

    public void removeDernier(){
        MonMaillon current = this.debut;
        while (suivant=current.getSuiteMaillon() != this.fin){
            current = suivant;
        }
        this.fin = this.debut.getSuiteMaillon();
    }
    
    /** et pour naviguer? 
        On pourrait implémenter l'interface iterator de java.util ici
    **/
       

}


