Une liste =

·        une tête

·        un curseur

Les cellules sont à part !!

 

L1=L2;

Þ les pointeurs sont recopiés, pas les cellules !!

Þ faire un constructeur par recopie complet et un opérateur d'affectation

 

LISTE::LISTE(const LISTE &L)

{ CELLULE *p;

  if (L.Vide())

    Tete=Curseur=NULL;

  else {

       p=L.Tete();

          Tete = new CELLULE(p->Info);

           if(!Tete)   pballoc();

           while (p!=NULL) {

              InsérerAprès(p->Info)

              p=p->Suivant

           }

  }

}

 

Opérateur d'affectation

L==*this

Attn : ne pas créer une nouvelle LISTE car la c'est la cible qu'il faut changer

Attn : penser au cas particulier L1=L1 !!!