64 lines
1.6 KiB
Java
64 lines
1.6 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 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(){ // pas efficace
|
||
|
MonMaillon current = this.debut;
|
||
|
while (suivant=current.getSuiteMaillon() != this.fin){
|
||
|
current = suivant;
|
||
|
}
|
||
|
current.setSuiteMaillon(null);
|
||
|
this.fin = current;
|
||
|
}
|
||
|
|
||
|
/** et pour naviguer?
|
||
|
On pourrait implémenter l'interface iterator de java.util ici
|
||
|
**/
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|