diff --git a/liste.c b/liste.c index f020d17..f3e3cd0 100644 --- a/liste.c +++ b/liste.c @@ -46,7 +46,20 @@ void viderListe(Liste liste) { } void trierListe(Liste *liste) { + if (*liste != NULL) // si la liste n'est pas vide + for (Cellule *i = *liste; i->suivant != NULL; i = i->suivant) // premier curseur + for(Cellule *j = i->suivant; j != NULL; j = j->suivant) // second curseur + if (i->frequence > j->frequence) { // si besoin de faire un échange, on le fais + Cellule temporaire = *j; + temporaire.lettre = j->lettre; + temporaire.frequence = j->frequence; + j->lettre = i->lettre; + j->frequence = i->frequence; + + i->lettre = temporaire.lettre; + i->frequence = temporaire.frequence; + } } void ajouterEnTete(Liste *liste, Cellule *cellule) { diff --git a/liste.h b/liste.h index 98e29b5..a252228 100644 --- a/liste.h +++ b/liste.h @@ -32,7 +32,7 @@ void afficherListe(Liste liste, FILE *fichier); // Vide la liste void viderListe(Liste liste); -// Trie la liste en fonction des occurences +// Trie la liste en fonction des occurences (tri à bulle) void trierListe(Liste *liste); // Ajoute une cellule en tête de liste