begin process at 2008 07 05 07:27:10
1 205 059 membres
45 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Trier un liste chainéé [ Archives / Au secours ] (malice120)

Trier un liste chainéé le 14/01/2004 02:00:12

malice120
Bonjour je n'arrive pas à trier ma liste chainée en langage C?aidez moi svp...

Re : Trier un liste chainéé le 14/01/2004 07:11:05

MoDDiB
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 ^^

Re : Trier un liste chainéé le 14/01/2004 11:34:42

fute
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 envoi ton code. Ce sera plus simple pour t'expliquer !

fute

Re : Trier un liste chainéé le 14/01/2004 13:37:25

vecchio56
(Admin CS)
ou bien utilise le modèle list de la stl qui fournit une fontion sort()


Re : Trier un liste chainéé le 15/01/2004 00:32:37

sebseb42
oui vecchio, ou bien il peut aussi le faire en php :P

Re : Trier un liste chainéé le 16/01/2004 04:30:26

malice120
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 ?

Re : Trier un liste chainéé le 26/02/2004 15:28:37

vinchi
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);
}
}



Classé sous : liste, trier, chainéé

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS