Sur la concaténation de 2 liste chainné

Signaler
Messages postés
1
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
16 décembre 2006
-
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
-
comment fair la concaténation de 2 liste chainné  vc c++
 j'ai deja créé une class noeu et 1 autre liste kelle es friend de la premier mai j'arrive pas a faire la concaténation de 2 liste chainé

2 réponses

Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
malgré ce français approxiamtif, on voit le soucis tout simple.

(me fait que les classes soient friend n'a rien à voir là dedans)

cette concaténation peut etre accomplie de deux façon,
l'une non destructrice pour la 2nde liste:
en rajoutant chacun des éléments de la 2nde liste à la première

L'autre plus rapide & moins gourmande en mémoire, mais destructrice (la 2nde liste est vidée)
en mettant la 2nde liste à la suite de la 1ere
(cela suppose la 1ere liste non triée)

rendons ceci plus parlant pour la 2nde méthode:

List : héritant d'Elt
Elt : comportant : suivant,precedent, valeur.

void concat(List* pL1,List *pL2)
{
if(!pL2)return;

if(!pL1)
{
pL1=pL2;
pL2=NULL;
return;

}
Elt* pLast2=pL2->precedent;
pL2->precedent=pL1->precedent:
pL1->precedent->suivant=pL2;
pL1->precedent=

pL2->precedent;
pLast2->suivant=pL1;
pL2=NULL;
}

___________________________________________________________
Magicalement
Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
malgré ce français approxiamtif, on voit le soucis tout simple.

(me fait que les classes soient friend n'a rien à voir là dedans)

cette concaténation peut etre accomplie de deux façon,
l'une non destructrice pour la 2nde liste:
en rajoutant chacun des éléments de la 2nde liste à la première

L'autre plus rapide & moins gourmande en mémoire, mais destructrice (la 2nde liste est vidée)
en mettant la 2nde liste à la suite de la 1ere
(cela suppose la 1ere liste non triée)

rendons ceci plus parlant pour la 2nde méthode:

List : héritant d'Elt
Elt : comportant : suivant,precedent, valeur.

void concat(List* pL1,List *pL2)
{
if(!pL2)return;

if(!pL1)
{
pL1=pL2;
pL2=NULL;
return;

}
Elt* pLast2=pL2->precedent;
pL2->precedent=pL1->precedent:
pL1->precedent->suivant=pL2;
pL1->precedent=

pL2->precedent;
pLast2->suivant=pL1;
pL2=NULL;
}

___________________________________________________________
Magicalement
Nono