Voila j'ai un gros problemes avec une pile en c, qui ne depile pas ...
mon source :
typedef int Element;
typedef struct Cellule {
Element valeur;
Element pere;
struct Cellule * suivant;
} Cellule, *PILE;
void empiler(PILE *pile, Element valeur, Element pere ){
PILE Q;
Q = (PILE)malloc(sizeof(Cellule));
Q->suivant = *pile;
Q->valeur = valeur;
Q->pere = pere;
*pile = Q;
}
void depiler(PILE *pile){
pile = (*pile)->suivant;
}
void testepile (PILE *pile) {
printf ("Teste pile\n" );
empiler (pile, 3, 4);
printf ("Sommet pile : %d, %d\n", (*pile)->valeur, (*pile)->pere);
empiler (pile, 4, 5);
printf ("Sommet pile : %d, %d\n", (*pile)->valeur, (*pile)->pere);
depiler (pile);
printf ("Sommet pile : %d, %d\n", (*pile)->valeur, (*pile)->pere);
}
int main (int argc, char *argv[]) {
PILE p; // pile
testepile(&p);
}
Tout se compile mais ça me donne comme affichage :
-->
Teste pile
Sommet pile : 3, 4
Sommet pile : 4, 5
Sommet pile : 4, 5
alors que je devrais avoir
Teste pile
Sommet pile : 3, 4
Sommet pile : 4, 5
Sommet pile : 3, 4
Merci de m'aider un petit peu ...