68 lines
1.9 KiB
Java
68 lines
1.9 KiB
Java
|
|
/**
|
||
|
|
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 courant;
|
||
|
|
|
||
|
|
public MonBrin(MonMaillon p) {
|
||
|
|
this.debut = p;
|
||
|
|
this.courant = p; // Initialiser courant pour le parcours
|
||
|
|
}
|
||
|
|
|
||
|
|
public MonMaillon getDebut() {
|
||
|
|
return this.debut;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Méthode hasNext pour vérifier s'il y a un élément suivant
|
||
|
|
public boolean hasNext() {
|
||
|
|
return courant != null;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Méthode next pour obtenir la base actuelle et avancer
|
||
|
|
public Base next() {
|
||
|
|
if (!hasNext()) {
|
||
|
|
throw new RuntimeException("No more elements in the brin.");
|
||
|
|
}
|
||
|
|
Base baseActuelle = courant.getBase();
|
||
|
|
courant = courant.getSuiteMaillon(); // Avancer au maillon suivant
|
||
|
|
return baseActuelle;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public String toString() {
|
||
|
|
StringBuilder sb = new StringBuilder();
|
||
|
|
MonMaillon temp = this.debut;
|
||
|
|
while (temp != null) {
|
||
|
|
sb.append(temp.getBase()).append(" ");
|
||
|
|
temp = temp.getSuiteMaillon();
|
||
|
|
}
|
||
|
|
return sb.toString().trim();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/*
|
||
|
|
public class MonBrin {
|
||
|
|
|
||
|
|
//Le constructeur fabrique un brin à partir du premier maillon p;
|
||
|
|
public MonBrin(MonMaillon p){
|
||
|
|
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
|
||
|
|
}
|
||
|
|
|
||
|
|
public MonMaillon getDebut(){
|
||
|
|
throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
|
||
|
|
}
|
||
|
|
|
||
|
|
et pour naviguer?
|
||
|
|
On pourrait implémenter l'interface iterator de java.util ici
|
||
|
|
|
||
|
|
}
|
||
|
|
*/
|