Files
BUT2FICPOO/TP4/Exo1/1Iterable/MonBrin.java
T
2025-12-09 21:30:45 +01:00

73 lines
1.9 KiB
Java

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 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 structuration et la navigation sont dans la même classe.
*/
public class MonBrin implements Iterator<Base>{
private MonMaillon premier;
private MonMaillon index;
/**
* Autres index pour d'autres personnes qui naviguent
*/
private MonMaillon secondaire;
private MonMaillon tertiaire;
//Le constructeur fabrique un brin à partir du premier maillon p;
public MonBrin(MonMaillon p){
this.premier = p;
this.index = p;
this.secondaire = p;
this.tertiaire = p;
}
public MonMaillon getDebut(){
return this.premier;
}
@Override
public boolean hasNext(){
return index != null;
}
@Override
public Base next() {
if(this.index == null) throw new NoSuchElementException();
Base b = index.getBase();
index = index.getSuiteMaillon();
return b;
}
public boolean hasNextSecondaire(){
return secondaire != null;
}
public Base nextSecondaire() {
if(this.secondaire == null) throw new NoSuchElementException();
Base b = secondaire.getBase();
secondaire = secondaire.getSuiteMaillon();
return b;
}
public boolean hasNextTertiaire(){
return tertiaire != null;
}
public Base nextTertiaire() {
if(this.tertiaire == null) throw new NoSuchElementException();
Base b = tertiaire.getBase();
tertiaire = tertiaire.getSuiteMaillon();
return b;
}
}