Correction Pile 2 .pdf


Nom original: Correction Pile 2.pdfTitre: Correction Pile 2Auteur: zouari

Ce document au format PDF 1.4 a été généré par PDFCreator 2.4.1.13, et a été envoyé sur fichier-pdf.fr le 13/04/2017 à 13:45, depuis l'adresse IP 160.156.x.x. La présente page de téléchargement du fichier a été vue 277 fois.
Taille du document: 44 Ko (2 pages).
Confidentialité: fichier public

Aperçu du document


Correction Pile : Retrait d’un élément
1. Vérifier si la pile n'est pas vide
if (*p_pile != NULL)
{
}

Ici, il suffit juste de vérifier si la pile n'est pas un pointeur NULL. Si ce n'est pas le cas, la pile n'est pas
vide.
2. Si elle ne l'est pas, stocker dans un élément temporaire l'avant-dernier élément de la pile
Pile *temporaire = (*p_pile)->precedent;

Rappelez-vous, nous pointons toujours vers le dernier élément de la pile, donc l'élément précédent
est l'avant-dernier élément de la pile.
3. Stocker dans une variable locale la valeur étant stockée dans le dernier élément de la pile
ret = (*p_pile)->donnee;

Nous voulons retourner la valeur de l'élément que nous allons supprimer, il est donc nécessaire de la
récupérer avant de supprimer cet élément.
N.B. : la variable ret sera déclarée en haut de la fonction et initialisée à -1.
4. Supprimer le dernier élément
free(*p_pile), *p_pile = NULL;

La pile pointe sur le dernier élément, il suffit donc d'utiliser free pour supprimer le dernier élément.
De plus, après chaque free, il ne faut pas oublier de remettre le pointeur à NULL.
5. Faire pointer la pile vers notre élément temporaire
*p_pile = temporaire;

Afin de « mettre à jour » notre pile, on la fait pointer sur notre élément temporaire qui est l'avantdernier élément de la pile.

6. Retourner la valeur dépilée
return ret;

Il suffit tout simplement d'utiliser l'instruction return pour retourner la valeur de l'élément que l'on
vient de supprimer.
Voici donc notre fonction complète :
int pile_pop(Pile **p_pile)
{
int ret = -1;
if (p_pile != NULL)
{
Pile *temporaire = (*p_pile)->precedent;
ret = (*p_pile)->donnee;
free(*p_pile), *p_pile = NULL;
*p_pile = temporaire;
}
return ret;
}


Correction Pile 2.pdf - page 1/2


Correction Pile 2.pdf - page 2/2



Télécharger le fichier (PDF)

Correction Pile 2.pdf (PDF, 44 Ko)

Télécharger
Formats alternatifs: ZIP



Documents similaires


correction pile 2
correction pile 1
corrige td3
les bases de php
cours l2 php mysql chap 2
2 les fonctions en c

Sur le même sujet..