Trier un liste chainéé

malice120 Messages postés 20 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 16 janvier 2004 - 14 janv. 2004 à 02:00
cs_vinchi Messages postés 1 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 26 février 2004 - 26 févr. 2004 à 15:28
Bonjour je n'arrive pas à trier ma liste chainée en langage C'aidez moi svp...

6 réponses

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
14 janv. 2004 à 07:11
Bop d'ici la semaine prochaine des que j'ai le temps je fais un tu sur les listes chainés.. donc si personne a repondu d'ici la t'aura tj la réponse ^^
0
cs_fute Messages postés 18 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 20 décembre 2004
14 janv. 2004 à 11:34
Plutot que de construire une liste chainée en ajoutant les éléments toujours à la fin, tu peux aussi insérer dans ta fonction d'ajout un bout de code qui recherche la valeur qui suit celle que tu veux ajouter et l'ajouter juste avant ;)
J'espère mettre fait comprendre. Sinon :question) envoi ton code. Ce sera plus simple pour t'expliquer !

fute
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 janv. 2004 à 13:37
ou bien utilise le modèle list de la stl qui fournit une fontion sort()
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
15 janv. 2004 à 00:32
oui vecchio, ou bien il peut aussi le faire en php :P
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malice120 Messages postés 20 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 16 janvier 2004
16 janv. 2004 à 04:30
Bonjour à tous merci de votre aide en fait je veux trier une liste chainé non pas à l'ajout mais apres...

a++

malice

Avez vous un exmple de code en C ?
0
cs_vinchi Messages postés 1 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 26 février 2004
26 févr. 2004 à 15:28
Bonjour a tous, j aimerais avoir un peu d aide
voila g un petit programme et je dois le trier, mais je c pas comment faire

#include <stdlib.h>
#include <stdio.h>
struct commande {
char nom[80];
char article[80];
int nombre,prix;
struct commande *suiv;
};

void print_com(struct commande com)
{
printf ("%s%s%d%d",com.nom,com.article,com.nombre,com.prix);
}

struct commande *max_com( struct commande * l_com)
{
struct commande *pmax;
struct commande *pcour;
int vmax,vcour;
if ( l_com == NULL)
return (NULL);
else
{
pmax = l_com;
vmax = (pmax -> nombre) * (pmax -> prix);
for (pcour = l_com -> suiv; pcour != NULL;pcour = pcour -> suiv)
{
vcour = (pcour -> nombre * pcour ->prix);
if (vcour>vmax)
{
vmax = vcour;
pmax = pcour;
}
}
return (pmax);
}
}
/*main*/
int main()
{
FILE * fi;
struct commande *l_com = NULL;
struct commande *prec, *cour;
int val_ret;
if ((fi = fopen("commande.data","r"))==NULL)
printf ("impossible d ouvrir le fichier commande.data\n");
else
{
do
{
cour = malloc(sizeof(struct commande));
val_ret = fscanf(fi,"%s%s%d%d",cour -> nom,cour -> article, &(cour -> nombre), &(cour -> prix));
if(val_ret == EOF)
{
free(cour);if(l_com !NULL) prec -> suiv NULL;
}
else
{if (l_com NULL) l_com cour;
else prec -> suiv = cour;
prec = cour;
}
}
while(val_ret != EOF);
if (l_com == NULL)
printf ("la liste de commande est vide\n");
else
{
for (cour = l_com; cour !=NULL; cour = cour -> suiv)
print_com(*cour);
printf ("la commande maximun est : \n");
print_com ( *max_com(l_com));
}
fclose(fi);
}
}
0
Rejoignez-nous