Bonjour,

J'ai programme qui s'occupe de liste circulaire avec la notion de généricité.
J'ai donc commencé à faire quelque chose mais je n'arrive pas à modifier les méthodes pour ajouter, supprimer, se déplacer
Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
public class CelluleEntierCirculaire<X> {
	private X valeur;
	private CelluleEntierCirculaire<X> celluleSuivante;
	private CelluleEntierCirculaire<X> cellulePrecedente;
 
	//Creation d’une cellule contenant la valeur n
	CelluleEntierCirculaire(X n){
		this.valeur = n;
		this.celluleSuivante = null;
		this.cellulePrecedente = null;
	}
 
	//Creation d’une cellule contenant la valeur n et ayant comme cellule suivante la cellule c
	CelluleEntierCirculaire(X n, CelluleEntierCirculaire<X> c){
		this.valeur = n;
		this.celluleSuivante = c;
	}
 
	//Renvoie la valeur contenue dans la cellule
	public X valeur(){
		return this.valeur;
	}
 
	//Renvoie la cellule suivante
	public CelluleEntierCirculaire<X> celluleSuivante(){
		if(this.celluleSuivante != null)
			return this;
		else
			return this.celluleSuivante;
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
 
public class ListeDEntiersCirculaire<X>{
	private CelluleEntierCirculaire<X> cellule;
 
	//Liste vide
	ListeDEntiersCirculaire(){
		this.cellule = null;
	}
 
	//Liste d’un élément
	ListeDEntiersCirculaire(X n){
		this.cellule = new CelluleEntierCirculaire<X>(n);
	}
 
	//Construction d’une liste par ajout d’un élément en tête d’une liste
	ListeDEntiersCirculaire(X n, ListeDEntiersCirculaire<X> l){
		this.cellule = new CelluleEntierCirculaire<X>(n,l.cellule);
	}
 
	//Renvoie la valeur de la tête de la liste
	public X tete(){
		assert(this.cellule!=null);
		return this.cellule.valeur();
	}
 
	//Supprime la premier valeur de la liste
	public void queue(){
		assert(this.cellule!=null);
		this.cellule = this.cellule.celluleSuivante();
	}
 
	//Ajoute un entier en tête de liste
	public void ajoute(X n){
		this.cellule = new CelluleEntierCirculaire<X>(n, this.cellule);
	}
 
	//Indique si la liste est vide
	public boolean estVide(){
		return cellule==null;
	}
 
	//Renvoie la longueur de la liste
	public int longueur(){
		int longueur = 0;
		CelluleEntierCirculaire<X> c = this.cellule;
		while (c!=null) {
			longueur = longueur + 1;
			c = c.celluleSuivante();
		}
		return longueur;
	}
 
	//Renvoie une chaîne de caractères représentant la liste
	public String toString(){
		String s = "[";
		CelluleEntierCirculaire<X> c = this.cellule;
		while (c!=null) {
			s = s + c.valeur();
			c = c.celluleSuivante();
			if (c!=null) s = s +"; ";
		}
		s = s + "]";
		return s;
	}
}
Merci de votre aide