Lec 06_Piles
Transcript of Lec 06_Piles
![Page 1: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/1.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
STRUCTURES DE
DONNÉES
STRUCTURES DE
DONNÉES
![Page 2: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/2.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
STRUCTURES DE DONNÉES LINÉAIRES:
LES PILES
STRUCTURES DE DONNÉES LINÉAIRES:
LES PILES
![Page 3: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/3.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Plan de la leçonPlan de la leçon
Programmation structurée Programmation structurée
Le concept de pile Le concept de pile
Exemples de piles
Exemples de piles
Implantation des piles Implantation des piles
![Page 4: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/4.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Programmation structurée
Programmation structurée
![Page 5: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/5.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Programmation structuréeProgrammation structurée
Besoin de structurer l'informationBesoin de structurer l'information
Retenir la relation logique qui existe entre les donnéesRetenir la relation logique
qui existe entre les données
Traitement identique concernant une famille de problèmes
Traitement identique concernant une famille de problèmes
![Page 6: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/6.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
ExempleExemple
SDs permettant de mettre en attente des informations pour les récupérer plus tard
SDs permettant de mettre en attente des informations pour les récupérer plus tard
Besoin de structurer l'informationBesoin de structurer l'information
Programmation structuréeProgrammation structurée
![Page 7: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/7.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Le concept de pileLe concept de pile
![Page 8: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/8.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Le concept de pileLe concept de pile
Une pile c’est quoi ?Une pile c’est quoi ?
SD caractérisée par un comportement particulier
en ce qui concerne l'insertion et l'extraction des éléments
SD caractérisée par un comportement particulier
en ce qui concerne l'insertion et l'extraction des éléments
![Page 9: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/9.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
DéfinitionDéfinition
Un ensemble d'élémentsde même type
Un ensemble d'élémentsde même type
Seul l'élément au sommet est visible
Seul l'élément au sommet est visible
Le concept de pileLe concept de pile
![Page 10: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/10.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
DéfinitionDéfinition
EmpilementEmpilement
DépilementDépilement
Pile Pile
SommetSommet
Le concept de pileLe concept de pile
![Page 11: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/11.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Le concept de pileLe concept de pile
#define Max 100enum boolean {false,true}typedef struct Elem {…} element;struct pile { element vec [Max]; int sommet;} p;
#define Max 100enum boolean {false,true}typedef struct Elem {…} element;struct pile { element vec [Max]; int sommet;} p;
Mise en oeuvreMise en oeuvre
![Page 12: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/12.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Initialiser une pile à vide Initialiser une pile à vide
raz()raz()
PilePile
Sommet Sommet
Le concept de pileLe concept de pile
![Page 13: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/13.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Initialiser une pile à vide Initialiser une pile à vide
raz()raz()
PilePile
Sommet Sommet
Le concept de pileLe concept de pile
![Page 14: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/14.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
void raz() { p.sommet = -1; return ;}
void raz() { p.sommet = -1; return ;}
Le concept de pileLe concept de pile
Initialiser une pile à vide Initialiser une pile à vide
![Page 15: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/15.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Indiquer si une pile est vide Indiquer si une pile est vide
empty()empty()
PilePile
Sommet Sommet falsefalse
Le concept de pileLe concept de pile
![Page 16: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/16.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
empty()empty()
PilePile
Sommet Sommet truetrue
Indiquer si une pile est vide Indiquer si une pile est vide
Le concept de pileLe concept de pile
![Page 17: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/17.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
boolean empty(){ return ( if (p.sommet == -1) return true; else return false;}
boolean empty(){ return ( if (p.sommet == -1) return true; else return false;}
Le concept de pileLe concept de pile
Indiquer si une pile est vide Indiquer si une pile est vide
![Page 18: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/18.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Récupérer l'élément au sommet Récupérer l'élément au sommet
pop(x)pop(x)
PilePile
SommetSommet
Le concept de pileLe concept de pile
![Page 19: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/19.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
PilePile
SommetSommet
Récupérer l'élément au sommet Récupérer l'élément au sommet
PilePile
SommetSommet
pop(x)pop(x)
Le concept de pileLe concept de pile
![Page 20: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/20.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
element pop() { if( empty() == true ) { perror("Pile vide"); exit(1); } else { res = p.vec[p.sommet ]; p.sommet--; } return(res);}
element pop() { if( empty() == true ) { perror("Pile vide"); exit(1); } else { res = p.vec[p.sommet ]; p.sommet--; } return(res);}
Le concept de pileLe concept de pile
Récupérer l'élément au sommet Récupérer l'élément au sommet
![Page 21: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/21.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Ajouter un nouvel élément x Ajouter un nouvel élément x
push(x)push(x)
PilePile
SommetSommetxx
Le concept de pileLe concept de pile
![Page 22: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/22.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
push(x)push(x)
PilePile
SommetSommetxx
xx
Ajouter un nouvel élément x Ajouter un nouvel élément x
Le concept de pileLe concept de pile
![Page 23: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/23.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
void push(element x) { if(p.sommet == Max-1) { perror("Pile pleine"); exit(2);} else { p.sommet++; p.vec[p.sommet ] = x; } return;}
void push(element x) { if(p.sommet == Max-1) { perror("Pile pleine"); exit(2);} else { p.sommet++; p.vec[p.sommet ] = x; } return;}
Le concept de pileLe concept de pile
Ajouter un nouvel élément x Ajouter un nouvel élément x
![Page 24: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/24.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exemples d’utilisationExemples
d’utilisation
![Page 25: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/25.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Les problèmes qui suivent une stratégie LIFO : Last In First OutLes problèmes qui suivent une
stratégie LIFO : Last In First Out
Exemples d’utilisationExemples d’utilisation
La première information à être récupérée est celle qui a été mise en attente en dernier
La première information à être récupérée est celle qui a été mise en attente en dernier
DomainesDomaines
![Page 26: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/26.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Domaine d'utilisationDomaine d'utilisation
Compilation Compilation
Évaluation d'expressions arithmétiques, logiques, … Évaluation d'expressions arithmétiques, logiques, …
Exemples d’utilisationExemples d’utilisation
![Page 27: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/27.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exécution d'une fonction Exécution d'une fonction
Objets créés à chaque appelObjets créés à chaque appel
Variables localesariables locales Variables localesariables locales
Arguments passés par valeursrguments passés par valeurs Arguments passés par valeursrguments passés par valeurs
![Page 28: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/28.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exécution d'une fonction Exécution d'une fonction
Objets créés à chaque appelObjets créés à chaque appel
float echanger(float a, b){ float x = a; a=b; b=x; return x;}
float echanger(float a, b){ float x = a; a=b; b=x; return x;}
![Page 29: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/29.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exécution d'une fonction Exécution d'une fonction
Objets créés à chaque appelObjets créés à chaque appel
int y =echanger(2.5,5.7);int y =echanger(2.5,5.7);
? yyaa2.5
5.7 bb? xx
![Page 30: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/30.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exécution d'une fonction Exécution d'une fonction
Objets détruits à chaque retourObjets détruits à chaque retour
Les derniers, en vue de retrouverles données à l'état où elles
étaient avant l'appel
Les derniers, en vue de retrouverles données à l'état où elles
étaient avant l'appel
? yyaa5.7
2.5 bb2.5 xx
2.5 yy
![Page 31: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/31.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Mini éditeur de texte
Mini éditeur de texte
Effacement de caractèresà l'aide du caractère '#‘
Destruction d'une ligne
à l'aide du caractère '@'
Effacement de caractèresà l'aide du caractère '#‘
Destruction d'une ligne
à l'aide du caractère '@'
![Page 32: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/32.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
EditeurEditeur
copy fich1 fich2copy fich1 fich2
mkd@copie##y fich1 fich2mkd@copie##y fich1 fich2
TapéTapé
InterprétéInterprété
Mini éditeur de texte
Mini éditeur de texte
![Page 33: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/33.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
#include "pile.h"void editeur() { char c; raz(); while( (c=getchar()) != ’\n’) { switch ( c ) { case '#' : pop(); break; case '@' : raz(); break; default : push(c); } } afficher()}
#include "pile.h"void editeur() { char c; raz(); while( (c=getchar()) != ’\n’) { switch ( c ) { case '#' : pop(); break; case '@' : raz(); break; default : push(c); } } afficher()}
Pile à définir iciPile à définir ici
Caractère ordinaireCaractère ordinaire
En ordre inverseEn ordre inverse
![Page 34: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/34.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exercice 1Exercice 1
![Page 35: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/35.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Expressions avec parenthèsesExpressions avec parenthèses
ExerciceExercice
ProblèmeProblème
S'assurer que les parenthèses ((et)), les crochets ([et]) et les accolades ({et}) sont correctement imbriqués
S'assurer que les parenthèses ((et)), les crochets ([et]) et les accolades ({et}) sont correctement imbriqués
![Page 36: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/36.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Expressions avec parenthèsesExpressions avec parenthèses
ExerciceExercice
ProblèmeProblème
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 37: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/37.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Expressions avec parenthèsesExpressions avec parenthèses
ExerciceExercice
Il y a autant de délimiteurs ouvrants que fermants Il y a autant de délimiteurs ouvrants que fermants
Chaque délimiteur fermant, d'un type donné, est précédé par un symbole du même type qui l'ouvre
Chaque délimiteur fermant, d'un type donné, est précédé par un symbole du même type qui l'ouvre
![Page 38: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/38.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
QuestionQuestion
Pour quelle raison la résolutionde ce problème fait-elle appelà l'utilisation d'une SD pile?
Pour quelle raison la résolutionde ce problème fait-elle appelà l'utilisation d'une SD pile?
ExerciceExercice
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 39: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/39.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Stratégie LIFO Stratégie LIFO
Le dernier délimiteur ouvert est le premier à fermer
Le dernier délimiteur ouvert est le premier à fermer
ExerciceExercice
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 40: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/40.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
QuestionQuestion
Etat de la pile après la lecture de la chaîne :Etat de la pile après la lecture de la chaîne :
ExerciceExercice
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 41: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/41.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
ExerciceExercice
Etat de la pileEtat de la pile
{PilePile
([
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 42: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/42.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
{([
ExerciceExercice
Etat de la pileEtat de la pile
{[(
{
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 43: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/43.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
ExerciceExercice
Etat de la pileEtat de la pile
{[(
{[(
{[
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 44: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/44.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
{[
{
ExerciceExercice
Etat de la pileEtat de la pile
{x+(y-[a+b])*c-[(d+e)]}{x+(y-[a+b])*c-[(d+e)]}
![Page 45: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/45.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
ExerciceExercice
EcrireEcrire
Un programme qui examinela validité d'une expression
mathématique donnée
Un programme qui examinela validité d'une expression
mathématique donnée
![Page 46: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/46.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
switch(c){ case '(','[','{':
correct := push(c); break; case ')',']','}': {
o= pop(); switch(o){
case '(': if(c!=')') correct=false; break; … }
switch(c){ case '(','[','{':
correct := push(c); break; case ')',']','}': {
o= pop(); switch(o){
case '(': if(c!=')') correct=false; break; … }
// délimiteur ouvrant, on l'empile// délimiteur ouvrant, on l'empile
// délimiteur fermant, on dépile// délimiteur fermant, on dépile
// Ouvrant et fermant sont de même type
// Ouvrant et fermant sont de même type
![Page 47: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/47.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
if ( empty() && correct ) { printf("\n Votre expression est valide\n");}else{ printf("\n Votre expression n'est pas valide\n");}
if ( empty() && correct ) { printf("\n Votre expression est valide\n");}else{ printf("\n Votre expression n'est pas valide\n");}
![Page 48: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/48.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Exercice 2Exercice 2
![Page 49: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/49.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Imbrication des bouclesImbrication des boucles
Imbrication des boucles dans unlangage
Imbrication des boucles dans unlangage
DO 1Instructions DO 2 Instructions END 2 DO 3 Instructions END END 1
DO 1Instructions DO 2 Instructions END 2 DO 3 Instructions END END 1
Sans labelSans label
![Page 50: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/50.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Le programme est constituédes expressions
Le programme est constituédes expressions
DO Label END Label
DO Label END Label
Label identificateur
valide ou blanc
Label identificateur
valide ou blanc
Imbrication des bouclesImbrication des boucles
![Page 51: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/51.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Imbrication des bouclesImbrication des boucles
AlgorithmeAlgorithme
DO 1Instructions DO 2 Instructions END 2 DO 3 Instructions END END 1
DO 1Instructions DO 2 Instructions END 2 DO 3 Instructions END END 1
lire chaque expression, l'afficher à l'écran avec un message :
lire chaque expression, l'afficher à l'écran avec un message :
BOUCLE 1 OUVERTE BOUCLE 2 OUVERTE
BOUCLE 1 OUVERTE BOUCLE 2 OUVERTE
![Page 52: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/52.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
AlgorithmeAlgorithme
Tant que (il y a une ligne à lire) faire lire (ligne); afficher (ligne); instr:= le premier mot de la ligne; label:= le deuxième mot de la ligne; Si instr = 'DO' Alors Afficher un message approprié;
Tant que (il y a une ligne à lire) faire lire (ligne); afficher (ligne); instr:= le premier mot de la ligne; label:= le deuxième mot de la ligne; Si instr = 'DO' Alors Afficher un message approprié;
Stocke label quelque part !
Stocke label quelque part !
Imbrication des bouclesImbrication des boucles
![Page 53: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/53.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Sinon Si instr='END' Alors Si label= '' Alors Afficher un message fermant la dernière boucle ouverte Sinon Afficher un message fermant toutes les boucles en remontant jusqu'à la boucle label Finsi Sinon Afficher un message d'erreur Finsi FinsiRefaire
Sinon Si instr='END' Alors Si label= '' Alors Afficher un message fermant la dernière boucle ouverte Sinon Afficher un message fermant toutes les boucles en remontant jusqu'à la boucle label Finsi Sinon Afficher un message d'erreur Finsi FinsiRefaire
![Page 54: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/54.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Stocke label quelque part !
Stocke label quelque part !
Beaucoup d'imprécisionsBeaucoup d'imprécisions
Comment le retrouveret l'extraire?
Comment le retrouveret l'extraire?
Où? Où?
Imbrication des bouclesImbrication des boucles
![Page 55: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/55.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
D'après l'analysefaite précédemment
D'après l'analysefaite précédemment
La dernière boucle ouverteest la première à fermer,montre qu'il est natureld'utiliser une SD PILE
La dernière boucle ouverteest la première à fermer,montre qu'il est natureld'utiliser une SD PILE
Imbrication des bouclesImbrication des boucles
![Page 56: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/56.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
Stocke label quelque part !
Stocke label quelque part !
DoncDonc
push(PILE,label)push(PILE,label)
Imbrication des bouclesImbrication des boucles
![Page 57: Lec 06_Piles](https://reader034.fdocument.pub/reader034/viewer/2022042508/5572028c4979599169a3b816/html5/thumbnails/57.jpg)
Structures de donnéesLeçon n. 1 – Introduction et vue d’ensemble
Prof. A. EL FAKERENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Leçon n° 6 – Structures de données linéaires : les piles
STRUCTURES DE
DONNÉES
STRUCTURES DE
DONNÉES