/*
         * 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);
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 5
0
        /*
         * 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();
        }
Exemplo n.º 6
0
        /*
         * 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);
        }
Exemplo n.º 7
0
        /*
         * 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;
        }
Exemplo n.º 11
0
        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;
 }
Exemplo n.º 15
0
 private void AddEnTete(Maillon maillon)
 {
     maillon.NextMaillon = this.tete;
     this.tete           = maillon;
     ++nbElementListe;
 }
Exemplo n.º 16
0
 /*
  * réinitialise la liste
  */
 public void Reset()
 {
     this.tete           = null;
     this.nbElementListe = 0;
 }
Exemplo n.º 17
0
 public ListeSimplementChainee()
 {
     this.tete = null;
 }