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 !!!