#include <stdlib.h>
#include "list.h"
void ft_swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
t_list *sort_list(t_list *lst, int (*cmp)(int, int))
{
t_list *curr;
int swapped;
if (lst == NULL) // Vérifier si la liste est vide
return NULL;
swapped = 1;
// Répéter tant que des échanges ont été effectués
while (swapped)
{
swapped = 0;
curr = lst;
// Parcours de la liste
while (curr->next != NULL)
{
// Comparer les éléments et échanger si nécessaire
if ((*cmp)(curr->data, curr->next->data) == 0)
{
ft_swap(&curr->data, &curr->next->data);
swapped = 1; // Indiquer qu'un échange a eu lieu
}
curr = curr->next;
}
}
return lst; // Retourner la liste triée
}
To embed this project on your website, copy the following code and paste it into your website's HTML: