Bonjour,
on voit les listes chainées au cours et je dois faire un tri de celle-ci. J'ai jamais eu d'exemple pour ça et j'ai donc fait une fonction qui reçoit le pointeur de base et le revoit après le tri.
Par contre le tri ne fonctionne pas, j'ai du faire des boulettes mais je ne vois pas ou vu que je n'ai jamais vu cette matière. Voici ma fonction
Liste *tri (Liste *pb)
{
Liste *pt, *pt2, *xtp;
pt = (Liste *)malloc(sizeof (Liste *));
pt2 = (Liste *)malloc(sizeof (Liste *));
xtp = (Liste *)malloc(sizeof (Liste *));
pt = pb;
xtp = pb;
int sw, i, j;
do
{
sw=0;
for (i = 0; i < compte(pb); i++)
pt = pt->suivant;
for (j = 1; j < compte(pb)-1; j++)
pt2 = pt2->suivant;
{
if (pt->donnee > pt2->donnee)
{
xtp->donnee =pt->donnee;
pt->donnee = pt2->donnee;
pt2->donnee = xtp->donnee;
sw=1;
}
}
}while(sw==1);
return pb;
}
Mon but est de faire parcourir deux boucles avec deux pointeurs différents et de comparer les données entre ces deux boucles, mais je ne sais pas si c'est la meilleure solution...
Merci d'avance et soyez indulgent, j'ai jamais vu ça!!!
Configuration: Linux
Firefox 3.0.5