Académique Documents
Professionnel Documents
Culture Documents
LES PILES
Une pile est une liste linéaire dont seule une extrémité (appelée sommet) est accessible
(visible).
Opérations :
Les éléments sont extraits d’une pile dans l’ordre inverse de leur insertion. Ils suivent la loi
LIFO (Last In First Out).
Nous appellerons element le type des éléments de la pile et sommet l’indice ou l’adresse
indiquant le sommet de la pile.
Nous définissons un type prédéfini PILE comme une structure à deux champs : un tableau où
sont rangés les éléments insérés et une variable sommet dont la valeur est l’indice du sommet
de la pile. Nous avons les déclarations et les fonctions suivantes :
On va utiliser une liste chaînée dont le premier nœud contiendra le dernier élément inséré de
sorte que le traitement de la pile consistera uniquement en insertion et suppression en tête de
liste. On peut appeler sommet cette tête de liste.
Dés qu’on impose à une liste les ajouts et les suppressions en tête de liste, cette liste devient la
représentation d’une pile.
Nous avons les déclarations et les fonctions suivantes :
void initialser(pile P)
{
P=NULL ; // ou P=0 ;
}
void empiler(pile &P, element x) void depiler(pile &P, element &x, int vide)
{ {
pliste q ; if (P==0) printf(″pile vide\n″) ;
else
q=(pliste)malloc(sizeof(nœud)) ; {
if (q==0) printf(“pas d’espace mémoire”); x=P->elem;
else P=P->suivant;
{ }
q->elem=x ; }
q->suivant= P;
P=q;
}
}
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct
{ element T[maxp];
int sommet;
}PILE ;
PILE P;
int main()
{
char chaine[80];
char chaineinv[80];