Académique Documents
Professionnel Documents
Culture Documents
Structures de donnes
STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Plan de la leon
Programmation structure Le concept de pile Exemples de piles Implantation des piles
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Programmation structure
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Programmation structure
Besoin de structurer l'information
Retenir la relation logique qui existe entre les donnes
Structures de donnes
Programmation structure
Besoin de structurer l'information Exemple
SDs permettant de mettre en attente des informations pour les rcuprer plus tard
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Une pile cest quoi ?
SD caractrise par un comportement particulier en ce qui concerne l'insertion et l'extraction des lments
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Dfinition
Un ensemble d'lments de mme type
Seul l'lment au sommet est visible
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Dfinition
Empilement
Sommet Dpilement Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Mise en oeuvre
#define Max 100 enum boolean {false,true} typedef struct Elem {} element; struct pile { element vec [Max]; int sommet; } p;
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Initialiser une pile vide
raz()
Sommet
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Initialiser une pile vide
raz()
Sommet
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Initialiser une pile vide
Structures de donnes
Le concept de pile
Indiquer si une pile est vide
empty()
Sommet
false
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Indiquer si une pile est vide
empty()
Sommet
true
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Indiquer si une pile est vide
boolean empty() { return ( if (p.sommet == -1) return true; else return false; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Rcuprer l'lment au sommet
pop(x)
Sommet Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Rcuprer l'lment au sommet
pop(x)
Sommet Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Rcuprer l'lment au sommet
element pop() { if( empty() == true ) { perror("Pile vide"); exit(1); } else { res = p.vec[p.sommet ]; p.sommet--; } return(res); }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Ajouter un nouvel lment x
push(x)
Sommet
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Ajouter un nouvel lment x
push(x)
x x Sommet
Pile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Le concept de pile
Ajouter un nouvel lment x
void push(element x) { if(p.sommet == Max-1) { perror("Pile pleine"); exit(2);} else { p.sommet++; p.vec[p.sommet ] = x; } return; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exemples dutilisation
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exemples dutilisation
Domaines
Les problmes qui suivent une stratgie LIFO : Last In First Out La premire information tre rcupre est celle qui a t mise en attente en dernier
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exemples dutilisation
Domaine d'utilisation
Compilation valuation d'expressions
arithmtiques, logiques,
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
x b a y
Structures de donnes
x b a y
2.5
Structures de donnes
Effacement de caractres l'aide du caractre '# Destruction d'une ligne l'aide du caractre '@'
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Interprt
copy fich1 fich2
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
#include "pile.h" Pile dfinir ici void editeur() { char c; raz(); while( (c=getchar()) != \n) { switch ( c ) { case '#' : pop(); break; case '@' : raz(); break; default : push(c); Caractre } ordinaire } afficher() En ordre inverse }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice 1
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Expressions avec parenthses
Problme
S'assurer que les parenthses ((et)), les crochets ([et]) et les accolades ({et}) sont correctement imbriqus
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Expressions avec parenthses
Problme
{x+(y-[a+b])*c-[(d+e)]}
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Expressions avec parenthses
Il y a autant de dlimiteurs ouvrants que fermants
Chaque dlimiteur fermant, d'un type donn, est prcd par un symbole du mme type qui l'ouvre
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Question
Pour quelle raison la rsolution de ce problme fait-elle appel l'utilisation d'une SD pile?
{x+(y-[a+b])*c-[(d+e)]}
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Stratgie LIFO
Le dernier dlimiteur ouvert est le premier fermer
{x+(y-[a+b])*c-[(d+e)]}
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Question
Etat de la pile aprs la lecture de la chane :
{x+(y-[a+b])*c-[(d+e)]}
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Etat de la pile
{x+(y-[a+b])*c-[(d+e)]}
[ ( {
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Pile
Structures de donnes
Exercice
Etat de la pile
{x+(y-[a+b])*c-[(d+e)]}
[ ( {
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
( [ {
Structures de donnes
Exercice
Etat de la pile
{x+(y-[a+b])*c-[(d+e)]}
( [ {
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
( [ {
Structures de donnes
Exercice
Etat de la pile
{x+(y-[a+b])*c-[(d+e)]}
[ {
Prof. A. EL FAKER
{
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice
Ecrire
Un programme qui examine la validit d'une expression mathmatique donne
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
switch(c){ case '(','[','{': correct := push(c); break; case ')',']','}': { o= pop(); switch(o){
// dlimiteur ouvrant, on l'empile
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
if ( empty() && correct ) { printf("\n Votre expression est valide\n"); } else { printf("\n Votre expression n'est pas valide\n"); }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Exercice 2
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Sans label
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
DO END
Prof. A. EL FAKER
Label Label
Structures de donnes
Structures de donnes
Structures de donnes
Sinon Si instr='END' Alors Si label= '' Alors Afficher un message fermant la dernire boucle ouverte Sinon Afficher un message fermant toutes les boucles en remontant jusqu' la boucle label Finsi Sinon Afficher un message d'erreur Finsi Finsi Refaire
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
push(PILE,label)
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI