Files
BUT2FICPOO/TP4/stub/1Iterable/MonBrin.java

56 lines
1.6 KiB
Java
Raw Normal View History

2025-12-10 00:14:53 +01:00
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
MonBrin code un brin d'ADN sous forme de liste simplement chaînée.
Plusieurs instances de MonMaillon reliées convenablement forment une structure
simplement chaînée contenant pour chaque maillon le nom de la base.
On n'utilise pas java.util (pas de ArrayList, etc.) et on recode tout.
Dans cet exercice, cette classe implémente aussi Iterator<Base> :
elle sait donc se parcourir elle-même.
*/
public class MonBrin implements Iterator<Base> {
// Premier maillon du brin
private MonMaillon debut;
// Maillon courant pour la navigation (iterator)
private MonMaillon courant;
// Le constructeur fabrique un brin à partir du premier maillon p;
public MonBrin(MonMaillon p){
this.debut = p;
this.courant = p; // l'itération commence au début du brin
}
public MonMaillon getDebut(){
return this.debut;
}
/** Méthodes de l'interface Iterator<Base> */
@Override
public boolean hasNext() {
return this.courant != null;
}
@Override
public Base next() {
if (this.courant == null) {
throw new NoSuchElementException("Plus de base dans ce brin");
}
Base valeur = this.courant.getBase();
this.courant = this.courant.getSuiteMaillon();
return valeur;
}
@Override
public void remove() {
// On ne gère pas la suppression dans ce TP
throw new UnsupportedOperationException("remove() n'est pas supporté");
}
}