Tri d'une liste chainee en C
limbergh
Messages postés
658
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
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
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!!!
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!!!
A voir également:
- Trier une liste chainée en c
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
2 réponses
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
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