/* * réinitialise la liste */ public void Reset() { // question : est ce que mettre First et Last à null permet au GB de nettoyer la liste ? first = null; last = null; nbElementListe = 0; }
private bool SupprimerMaillon(Maillon <T> maillon) { bool maillonDeleted = false; IEnumerable <Maillon <T> > liste = this.Where(e => e.Equals(maillon)); foreach (var currentMaillon in liste) { if (currentMaillon.Previous == null) { first = currentMaillon.Next; if (currentMaillon.Next == null) { last = null; } } else if (currentMaillon.Next == null) { last = currentMaillon.Previous; currentMaillon.Previous = null; } else { currentMaillon.Previous.Next = currentMaillon.Next; currentMaillon.Next.Previous = currentMaillon.Previous; } nbElementListe -= 1; maillonDeleted = true; } return(maillonDeleted); }
private bool SupprimerMaillon(Maillon maillon) { if (this.tete == null) { return(false); } if (this.tete.Equals(maillon)) { this.tete = this.tete.NextMaillon; --nbElementListe; return(true); } Maillon currentMaillon = this.tete; while (currentMaillon.NextMaillon != null) { if (currentMaillon.NextMaillon.Equals(maillon)) { currentMaillon.NextMaillon = currentMaillon.NextMaillon.NextMaillon; --nbElementListe; return(true); } currentMaillon = currentMaillon.NextMaillon; } return(false); }
public IEnumerator <Maillon <T> > GetEnumerator() { Maillon <T> currentMaillon = first; while (currentMaillon != null) { yield return(currentMaillon); currentMaillon = currentMaillon.Next; } }
/* * Affichage du contenu des maillons, un par ligne */ public void DisplayChaine() { Maillon currentMaillon = this.tete; while (currentMaillon != null) { Console.WriteLine(currentMaillon.ToString()); currentMaillon = currentMaillon.NextMaillon; } Console.WriteLine(); }
/* * Calcul de la somme des value de chaque noeuds */ public int GetSomme() { int total = 0; Maillon currentMaillon = this.tete; while (currentMaillon != null) { total += currentMaillon.Nombre; currentMaillon = currentMaillon.NextMaillon; } return(total); }
/* * Inversion de l'ordre des éléments de la liste */ public void Inverser() { Maillon currentMaillon = this.tete; this.Reset(); while (currentMaillon != null) { Maillon nextMaillon = currentMaillon.NextMaillon; currentMaillon.NextMaillon = null; this.AddEnTete(currentMaillon); currentMaillon = nextMaillon; } }
/* * Inversion de l'ordre des éléments de la liste */ public void Inverser() { Maillon <T> currentMaillon = this.first; this.Reset(); while (currentMaillon != null) { Maillon <T> nextMaillon = currentMaillon.Next; currentMaillon.Next = null; this.AddFirst(currentMaillon); currentMaillon = nextMaillon; } }
/** * Ajout d'un élement à la fin de la liste */ public void AddLast(T n) { var maillon = new Maillon <T>(n); if (first == null) { AddFirst(maillon); } else { last.Next = maillon; maillon.Previous = last; last = maillon; nbElementListe += 1; } }
public void AddFirst(Maillon <T> maillon) { if (first == null) { first = maillon; last = maillon; } else { // Add node at the beginning of the list maillon.Next = first; first.Previous = maillon; first = maillon; } nbElementListe += 1; }
private void Add(Maillon maillon) { if (this.tete == null) { this.tete = maillon; ++nbElementListe; return; } Maillon currentMaillon = tete; while (currentMaillon.NextMaillon != null) { currentMaillon = currentMaillon.NextMaillon; } currentMaillon.NextMaillon = maillon; ++nbElementListe; }
public GenericSimplementChainee() { first = null; last = null; }
/* * Comparaison sur l'ID du maillon */ public bool Equals(Maillon <Tm> other) { return(Equals(value, other.value)); }
public Maillon(Tm n) { value = n; Previous = null; Next = null; }
private void AddEnTete(Maillon maillon) { maillon.NextMaillon = this.tete; this.tete = maillon; ++nbElementListe; }
/* * réinitialise la liste */ public void Reset() { this.tete = null; this.nbElementListe = 0; }
public ListeSimplementChainee() { this.tete = null; }