using System.Collections;
using System.Collections.Generic;
for (int i = 0; i != 10; ++i)
class ListeVideException : Exception {}
class Liste<T> : IEnumerable<T>
class Énumérateur : IEnumerator<T>
if (Cur.Succ == null) return false;
public void Reset() => throw new NotImplementedException();
public void Dispose() { }
public T Current => Cur.Valeur;
object IEnumerator.Current => Cur.Valeur;
public Énumérateur(Noeud tête)
public IEnumerator<T> GetEnumerator() => new Énumérateur(Tête);
public T Valeur { get; init; } = default;
public Noeud Succ { get; set; } = null;
Noeud Tête { get; set; } = null;
Noeud Queue { get; set; } = null;
public bool EstVide => Count == 0;
public int Count { get; private set; } = 0;
public void AjouterDébut(T val)
public void AjouterFin(T val)
public void SupprimerDébut()
if(EstVide) throw new ListeVideException();
if (EstVide) Queue = null;
IEnumerator IEnumerable.GetEnumerator() => new Énumérateur(Tête);