bonjour,
l'algorithme suivant fait la fusion de deux liste chainé(l1 et l2);
le probleme est dans la procedure fusionner,
en faite cet procedure fusion les deux listes,mais le résultat est stocké a fure et a mesure dans la liste l2 (j'ai deja la solution de fusionner les deux listes sur une 3eme liste,mais je veut économiser de l'espace memoire)
si vous avez pas compris quelque chose n'esitez pas a me le dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 typedef struct maillon *ptr; struct maillon { int val; ptr lien;}; typedef maillon listechaine; listechaine l1,l2; void fusionner(struct maillon l1,struct maillon *l2) { ptr pp1,pp2,pp3,pp;pp=l1.lien; pp1=l1.lien; pp2=(*l2).lien; pp3=&(*l2); while((pp!=NULL)&&(pp2!=NULL)) { if((*pp2).val<=(*pp).val) { pp2=(*pp2).lien; pp3=(*pp3).lien; } else{ pp=(*pp1).lien; (*pp3).lien=pp1; pp=(*pp).lien; } } if(pp1!=NULL (*pp2).lien=pp1; }
merci pour votre attention.
Partager