version fonctionnelle et propre de fusion de struct

master
parent 17fbc6a45a
commit cfb82ba4fe

@ -11,9 +11,9 @@
// boucle principale (je la trouve pas jolie, est ce qu'on la met dans fusionMaillonDevis meme si ce sera plus somple a expliquer ?)
void fusionDevisElements(ListeDevis *R, int *tlogR, ListeDevis *S, int *tlogS, ListeDevis *mergedList, ListeDevis *last, int *k)
{
ListeDevis *current;
while (*tlogR > 0 && *tlogS > 0)
{
ListeDevis *current;
if (strcmp((*R)->dev.nomE, (*S)->dev.nomE) < 0)
{
current = R;
@ -83,11 +83,13 @@ void gestionElementsHorsTailleLogique(ListeDevis *mergedList, ListeDevis *last,
// fusion de maillons
void fusionMaillonDevis(ListeDevis R, int tlogR, ListeDevis S, int tlogS, ListeDevis *T)
{
int k;
ListeDevis last;
ListeDevis mergedList
int k;
last = NULL;
mergedList = NULL;
k = 0;
ListeDevis last = NULL;
ListeDevis mergedList = NULL;
fusionDevisElements (&R, &tlogR, &S, &tlogS, &mergedList, &last, &k);
gestionElementsRestants (&mergedList, &last, &R, &tlogR, &k);
@ -103,6 +105,7 @@ void triFusionListeDevis(ListeDevis *ldevis, int tlog)
{
ListeDevis p;
ListeDevis q;
ListeDevis qTemp;
p = *ldevis;
q = p->suiv;
@ -113,7 +116,7 @@ void triFusionListeDevis(ListeDevis *ldevis, int tlog)
p = p->suiv;
q = q->suiv->suiv;
}
ListeDevis qTemp = p->suiv;
qTemp = p->suiv;
p->suiv = NULL;
triFusionListeDevis(ldevis, tlog / 2);
@ -128,7 +131,8 @@ void triFusionListeDevis(ListeDevis *ldevis, int tlog)
//est ce qu'on supprime tout les elements de la liste chainee ou juste les elements de la longueure logique ?
void freeListeDevis(ListeDevis *ldevis, int *tlog)
{
ListeDevis pos = *ldevis;
ListeDevis pos;
pos = *ldevis;
while (pos)
{
ListeDevis suiv = pos->suiv;

Loading…
Cancel
Save