Tri d'une liste chainee en C [Fermé]

Signaler
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
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!!!

2 réponses

Messages postés
29309
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
10 octobre 2020
6 941
Tu peux t'inspirer des méthodes de tri sur wikipedia.
https://fr.wikipedia.org/wiki/Tri_rapide

Si tes données étaient stockées dans un tableau, tu pourrais aussi utiliser la fonction qsort.
http://en.wikipedia.org/wiki/Qsort_(C_Standard_Library)

Bonne chance
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 491