COMMENT FAIRE UN TRI SELECTION EN LISTE SIMPLEMENT CHAINE

Soyez le premier à donner votre avis sur cette source.

Snippet vu 469 fois

Contenu du snippet

#include<stdlib.h>
typedef struct nb
{
    int data;
 struct chaine *next;
}nb;
typedef struct list
{
nb *debut,*fin,*temp;
}list;

list  * initialisation(list *l)
{

     l=malloc(sizeof(list));
    l->debut=NULL;
      l->fin=l->debut;
    return l;
}
 creation(list *l)
{

    nb *box=malloc(sizeof(nb));

    printf("entrer un entier a ajouter a la liste ");
    scanf("%d",&box->data);
    box->next=NULL;
if(l->debut==NULL)
{
    l->debut=box;
    l->fin=l->debut;

}
else
{
    l->fin->next=box;
    l->fin=l->fin->next;

}

}
void affichage(list *l )
{

nb *temp=l->debut;
    while(temp!=NULL)
    {
        printf("%d -> ",temp->data);
        temp=temp->next;
    }
printf("n");
}
 tri(list * l1)
{
    nb *temp1; nb*temp2;nb *temp3;
    int cmp;

    printf("nla liste apres tri n");
    printf("n #tri selection# n");
   for(temp1=l1->debut;temp1->next!=NULL;temp1= temp1->next)
    {
        for(temp3=temp1->next;temp3!=NULL;temp3=temp3->next)
        {
            if(temp1->data > temp3->data )
            {
                cmp=temp1->data;
                temp1->data=temp3->data;
                temp3->data=cmp;

            }
        }
    }

}

main()
{
    list *l1;
    l1=initialisation(l1);
    int NB,i;
    printf("donner le nombre de elem a ajouter ");
    scanf("%d",&NB);
    for(i=1;i<=NB;i++)
    {
       creation(l1);
    }
    affichage(l1);
tri(l1);
affichage(l1);

}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.