no save
Assistance
Achat
News

Forum | programmation
Liste doublement chainée en C
de passage..., le mar. 16 nov. 2004 à 01:34:43
#include <stdio.h> #include <stdlib.h> typedef struct liste
{
struct liste *suivant;
struct liste *precedent;
int valeur;

}LISTE;

// tu peux utiliser le paramètre "alafin" dans la procédure
// car tu ne modifies que la valeur locale (une copie sur la
// pile du pointeur "p" passé en paramètre)
void affichageFin (LISTE *alafin)
{
while (alafin != NULL)
{
printf("%d\n",alafin->valeur);
alafin=alafin->precedent;
}
}
void affichage (LISTE *fin)
{
LISTE *p;

p=fin;
while (p != NULL)
{
printf ("%d\n", p->valeur);
p = p->suivant;
}
}

LISTE *insertion (int valeur, LISTE *p)
{
LISTE *nouveau;

p->precedent = p->suivant;
nouveau = malloc(sizeof(LISTE));
if (nouveau != NULL)
{
// on vérifie tjs un pointeur alloué!!!!
// printf("%d,%d",p->precedent,p->suivant);
p->suivant = nouveau;
nouveau->suivant=NULL;
nouveau->valeur = valeur;
}
return nouveau;
}

int main ()
{
int i, n;
LISTE *tete, *p; /* *p est en fait ta fin de liste */

printf ("Taille de la liste:");
scanf ("%d", &n);

p = (LISTE*) &tete; for (i=1; i<=n; i++)
{
p = insertion (i*i, p);
}
affichage(tete);
affichagefin(p);
}
Précédentmaily
nov. 04
rym
déc. 07
Suivant
REPONSES
maily
nov. 04
Jarod
nov. 04
maily
nov. 04
de passage...
nov. 04
rym
déc. 07
lami20j
déc. 07
Version Web
Réalisé par RedShift
no save