Bonjour,
j'ai crée une liste chainéee, j'insère 4 élements dedans, et quand je veux parcourir ma liste, je ne vois que le dernier...
pkoi ??
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct struct_pile
{
char caractere;
struct struct_pile *suivant;
};
typedef struct struct_pile *pile;
pile empiler(pile une_pile, char elem)
{
pile nv_pile, avant;
nv_pile=(pile)malloc(sizeof(struct_pile));
if (une_pile==NULL)
{
nv_pile->caractere=elem;
nv_pile->suivant=NULL;
}
else
{
avant = une_pile;
printf ("cas de la pile\n" );
while (avant->suivant != NULL)
{
printf("boucle\n" );
avant = avant->suivant;
}
nv_pile->caractere=elem;
nv_pile->suivant=NULL;
printf("fin de boucle\n" );
avant->suivant = nv_pile;
}
return une_pile;
}
//Programme principal
main()
{
pile ma_pile,q;
ma_pile=(pile)malloc(sizeof(struct_pile));
printf("Creation de la pile\n" );
//ma_pile=NULL;
printf("Empilage 1\n" );
ma_pile=empiler(ma_pile,'a';
printf("Empilage 2\n" );
ma_pile=empiler(ma_pile,'b';
printf("Empilage 3\n" );
ma_pile=empiler(ma_pile,'1';
printf("Empilage 4\n" );
ma_pile=empiler(ma_pile,'f';
printf("Affichage\n" );
q=ma_pile;
while (q!=NULL)
{
printf("...........\n" );
printf("pile : %c\n",q->caractere);
q=q->suivant;
}
}
Par avance merci des vos réponses...
Message édité par nikko le 17-12-2002 à 19:35:47