Téléchargement
illégal
Posez votre question Signaler

Tri d'une liste chainee en C

limbergh 650Messages postés 8 juillet 2007Date d'inscription 29 juin 2010Dernière intervention - Dernière réponse le 14 févr. 2009 à 11:35
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!!!
Lire la suite 

Tri d'une liste chainee en C »

2 réponses
Réponse
+0
moins plus
Tu peux t'inspirer des méthodes de tri sur wikipedia.
http://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
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Voici un exemple de tri par insertion
http://www.commentcamarche.net/forum/affich 10142953 tri par insertion?#1
Ajouter un commentaire
Ce document intitulé « tri d'une liste chainee en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?