fin tp3
This commit is contained in:
72
DEV3.2/TP03/02_Chaine/CouleurList.java
Normal file
72
DEV3.2/TP03/02_Chaine/CouleurList.java
Normal file
@@ -0,0 +1,72 @@
|
||||
import java.awt.*;
|
||||
import javax.swing.*;
|
||||
import java.util.List;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class CouleurList<E> implements Iterable<E> {
|
||||
|
||||
protected E valeur;
|
||||
protected CouleurList<E> suivant;
|
||||
|
||||
public CouleurList() {
|
||||
this.valeur = null;
|
||||
this.suivant = null;
|
||||
}
|
||||
|
||||
public CouleurList(E element) {
|
||||
this.valeur = element;
|
||||
this.suivant = null;
|
||||
}
|
||||
|
||||
public void add(E element) {
|
||||
if (this.valeur == null) {
|
||||
this.valeur = element;
|
||||
} else {
|
||||
CouleurList<E> actuel = this;
|
||||
while (actuel.suivant != null) {
|
||||
actuel = actuel.suivant;
|
||||
}
|
||||
actuel.suivant = new CouleurList<>(element);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean remove(E element) {
|
||||
if (this.valeur == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Cas 1 : suppression de la tête
|
||||
if (this.valeur.equals(element)) {
|
||||
if (this.suivant != null) {
|
||||
this.valeur = this.suivant.valeur;
|
||||
this.suivant = this.suivant.suivant;
|
||||
} else {
|
||||
// Cas spécial : un seul élément
|
||||
this.valeur = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Cas 2 : suppression dans le reste de la liste
|
||||
CouleurList<E> actuel = this;
|
||||
while (actuel.suivant != null) {
|
||||
if (actuel.suivant.valeur != null && actuel.suivant.valeur.equals(element)) {
|
||||
// suppression du suivant
|
||||
actuel.suivant = actuel.suivant.suivant;
|
||||
return true;
|
||||
}
|
||||
actuel = actuel.suivant;
|
||||
}
|
||||
|
||||
return false; // élément non trouvé
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Iterator<E> iterator() {
|
||||
return new Iterateur(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user