Bonjours tous,
Je suis toujours en train de vagabonder sur des exercices de pile, je voulais juste pour m'entrainer créer une fonction qui efface le premier élément ajouté à une pile (donc le dernier en vrai dans la liste) :
Jusque là, c'est des préliminaires nécessaire pour la compréhension du problème, le voilà le code de la fonction qui m'intéresse (et qui ne marche pas !) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <stdlib.h> //------------------------------------------- ///définir la structure //------------------------------------------- typedef struct pile { int valeur; struct pile *prec; } pile ; //------------------------------------------- /// intitialiser la pile à NULL //------------------------------------------- pile *MaPile = NULL; //------------------------------------------ ///fonction d'ajout dans la liste chaînée //------------------------------------------- pile * add(pile ** p,int val) { pile * n=malloc(sizeof(pile)); n->prec= *p; *p=n; n->valeur= val; return *p;}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void efface_first(pile **p){ pile * n=*p; pile * m=(*p)->prec; pile * k; while (m) { add(k,n->valeur); } *p = k; }
Partager