Académique Documents
Professionnel Documents
Culture Documents
Structures de données en C
Chap 3 : les piles et les files
Laila AMIR 1 / 24
Piles et files
Exemples d’application des piles et files
Plan
1 Piles et files
Les piles
Manipulation des piles
Implémentation d’une pile sous forme d’un tableau
Implémentation d’une pile sous forme d’une liste chaı̂née
Les files
Manipulation des files
Implémentation d’une file sous forme d’un tableau
Implémentation d’une file sous forme d’une liste chaı̂née
Laila AMIR 2 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Outline
1 Piles et files
Les piles
Manipulation des piles
Implémentation d’une pile sous forme d’un tableau
Implémentation d’une pile sous forme d’une liste chaı̂née
Les files
Manipulation des files
Implémentation d’une file sous forme d’un tableau
Implémentation d’une file sous forme d’une liste chaı̂née
Laila AMIR 3 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Définition
Laila AMIR 4 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Les piles
Dans le cas des piles : c’est le dernier élément ajouté qui est retiré en
premier. On dit que la pile est une structure LIFO (last-in first-out).
Laila AMIR 5 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 6 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 7 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Pour implémenter une pile (des réels par exemple) sous forme d’un
tableau, on utilise une structure de ce type :
typedef struct
{
int nb-elem; //nombre d’éléments dans la pile
int nb-elem-max; //nombre d’éléments maximum dans la pile
float *tab; //tableau contenant les éléments de la pile.
}Pile;
Laila AMIR 8 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 9 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 10 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Pour implémenter une pile (des réels par exemple) sous forme d’une liste
chaı̂née, on utilise une structure de ce type :
Laila AMIR 11 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Empiler
Laila AMIR 12 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Depiler
La fonction Depiler supprime le sommet de la pile en cas de pile non vide
et elle renvoie 0, sinon elle renvoie 1 en cas d’erreur (pile vide).
Laila AMIR 13 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Les files
Dans le cas des files : c’est le premier élément ajouté qui est retiré en
premier. On dit que la pile est une structure FIFO (first-in first-out).
Laila AMIR 14 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 15 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Laila AMIR 16 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Exercice de TP
Laila AMIR 17 / 24
Piles et files Les piles
Exemples d’application des piles et files Les files
Exercice de TP
Laila AMIR 18 / 24
Piles et files
Exemples d’application des piles et files
Outline
1 Piles et files
Les piles
Manipulation des piles
Implémentation d’une pile sous forme d’un tableau
Implémentation d’une pile sous forme d’une liste chaı̂née
Les files
Manipulation des files
Implémentation d’une file sous forme d’un tableau
Implémentation d’une file sous forme d’une liste chaı̂née
Laila AMIR 19 / 24
Piles et files
Exemples d’application des piles et files
Soit l’expression :
5 * (((9+8) * (4 * 6)) + 7)
Laila AMIR 20 / 24
Piles et files
Exemples d’application des piles et files
void compute ( ) {
Empiler( 5 ) ;
Empiler ( 9 ) ;
Empiler ( 8 ) ;
Empiler ( Depiler ( ) + Depiler ( ) ) ;
Empiler ( 4 ) ;
Empiler ( 6 ) ;
Empiler ( Depiler ( ) * Depiler ( ) ) ;
Empiler ( Depiler ( ) * Depiler ( ) ) ;
Empiler ( 7 ) ;
Empiler ( Depiler ( ) + Depiler ( ) ) ;
Empiler ( Depiler( ) * Depiler ( ) ) ;
printf ( ”la solution est : %f :”, Depiler ( ) ) ;
}
Laila AMIR 21 / 24
Piles et files
Exemples d’application des piles et files
Laila AMIR 22 / 24
Piles et files
Exemples d’application des piles et files
5 * (((9+8) * (4 * 6)) + 7)
On peut réécrire toute expression infixée en une notation telle que les
opérandes apparaissent d’abord et les opérateurs après, exemple :
5 9 8 + 4 6 * * 7 + *.
Laila AMIR 23 / 24
Piles et files
Exemples d’application des piles et files
Laila AMIR 24 / 24