Académique Documents
Professionnel Documents
Culture Documents
l’algorithmique
Cours 7: Piles et Files
Nicolas Méloni
Licence 1 (2017-2020)
Structure de données dynamiques
N. Méloni
2/20
Structure de données dynamiques
N. Méloni
3/20
Les piles
N. Méloni
4/20
Les piles
N. Méloni
5/20
Les piles
Empiler(P,1)
1
P
N. Méloni
5/20
Les piles
Empiler(P,1)
Empiler(P,3)
1
P
N. Méloni
5/20
Les piles
Empiler(P,1)
Empiler(P,3)
Lire(P)
3
1
P
N. Méloni
5/20
Les piles
Empiler(P,1)
Empiler(P,3)
Lire(P)
Depiler(P)
1
3
P
N. Méloni
5/20
Les piles
Empiler(P,1)
Empiler(P,3)
Lire(P)
Depiler(P)
Depiler(P)
1
P
N. Méloni
5/20
Implémentation des piles
N. Méloni
6/20
Implémentation des piles
1 ALGORITHME P i l e V i d e (P ) :
2 DONNEES
3 P : t a b l e a u de t a i l l e n 1 ALGORITHME L i r e (P ) :
4 DEBUT 2 DONNEES
5 S I sommet = 0 ALORS 3 P : t a b l e a u de t a i l l e n
6 RENVOYER VRAI 4 DEBUT
7 SINON 5 RENVOYER P [ sommet ]
8 RENVOYER FAUX 6 FIN
9 FSI
10 FIN
N. Méloni
7/20
Implémentation des piles
1 ALGORITHME E m p i l e r (P , x ) :
2 DONNEES
3 P : t a b l e a u de t a i l l e n 1 ALGORITHME D e p i l e r (P ) :
4 DEBUT 2 DONNEES
5 S I sommet = n ALORS 3 P : t a b l e a u de t a i l l e n
6 AFFICHER ” d e b o r d e m e n t ” 4 DEBUT
7 RENVOYER ERREUR 5 S I P i l e V i d e (P) = FAUX ALORS
8 SINON 6 sommet Ð sommet´1
9 sommet Ð sommet+1 7 RENVOYER P [ sommet +1]
10 P [ sommet ] Ð x 8 FIN
11 FSI
12 FIN
N. Méloni
8/20
Parenthésage d’une expression
Problème : Parenthésage
Entrée : une chaı̂ne de caractères C de longueur n
Sortie : VRAI si les parenthèses et les crochets sont équilibrés,
FAUX sinon
Exemple : "(a+5*[2-7]+(3*3+x))" est bien parenthésée mais pas
"(3+[6*x-2)]".
N. Méloni
9/20
Parenthésage d’une expression
N. Méloni
10/20
Parenthésage d’une expression
1 ALGORITHME P a r e n t h e s a g e (C ) :
2 DONNEES
3 C : c h a i n e de l o n g u e u r n
4 VARIABLES :
5 i : entier
6 P: p i l e
7 DEBUT
8 i Ð 1
9 TQ i ď n FAIRE
10 S I C [ i ] = ’ ( ’ OU C [ i ] = ’ [ ’ ALORS
11 E m p i l e r (P , C [ i ] ) Meilleur cas : Θp1q
12 SINON S I C [ i ] = ’ ) ’ ALORS
13 S I D e p i l e r (P) ‰ ’ ( ’ ALORS Pire cas : Θpnq
14 RENVOYER FAUX
15
16
FSI
SINON S I C [ i ] = ’ ] ’ ALORS
Complexité : Opnq
17 S I D e p i l e r (P) ‰ ’ [ ’ ALORS
18 RENVOYER FAUX
19 FSI
20 FSI
21 i Ð i +1
22 FTQ
23 RENVOYER P i l e V i d e (P)
24 FIN
N. Méloni
11/20
Les files
N. Méloni
12/20
Les piles
N. Méloni
13/20
Les piles
Enfiler(F,1)
1
F
N. Méloni
13/20
Les piles
Enfiler(F,1)
Enfiler(F,3)
3 1
F
N. Méloni
13/20
Les piles
Enfiler(F,1)
Enfiler(F,3)
Enfiler(F,2)
2 3 1
F
N. Méloni
13/20
Les piles
Enfiler(F,1)
Enfiler(F,3)
Enfiler(F,2)
Lire(F)
2 3 1
F
N. Méloni
13/20
Les piles
Enfiler(F,1)
Enfiler(F,3)
Enfiler(F,2)
Lire(F)
1
Defiler(F) 2 3
F
N. Méloni
13/20
Implémentation des piles
N. Méloni
14/20
Implémentation des files
1 ALGORITHME F i l e V i d e ( F ) :
2 DONNEES
3 F : t a b l e a u de t a i l l e n 1 ALGORITHME L i r e ( F ) :
4 DEBUT 2 DONNEES
5 S I t e t e < q ue ue ALORS 3 P : t a b l e a u de t a i l l e n
6 RENVOYER VRAI 4 DEBUT
7 SINON 5 RENVOYER P [ t e t e ]
8 RENVOYER FAUX 6 FIN
9 FSI
10 FIN
N. Méloni
15/20
Implémentation des files
1 ALGORITHME E n f i l e r ( F , x ) :
2 DONNEES
3 P : t a b l e a u de t a i l l e n 1 ALGORITHME D e f i l e r ( F ) :
4 DEBUT 2 DONNEES
5 S I q ue ue = 0 ALORS 3 P : t a b l e a u de t a i l l e n
6 AFFICHER ” d e b o r d e m e n t ” 4 DEBUT
7 RENVOYER ERREUR 5 S I F i l e V i d e ( F ) = FAUX ALORS
8 SINON 6 t e t e Ð t e t e ´1
9 q ue ue Ð queue ´1 7 RENVOYER F [ t e t e +1]
10 F [ q ue ue ] Ð x 8 FIN
11 FSI
12 FIN
N. Méloni
16/20
Affichage des nombres binaires
N. Méloni
17/20
Affichage des nombres binaires
N. Méloni
18/20
Décomposition en base 2
1 ALGORITHME Base2 ( k ) :
2 DONNEES
3 k: entier
4 VARIABLES :
5 i : entier
6 C : c h a i n e de c a r a c t e r e s
7 DEBUT
8 i Ð 1
9 TQ k > 0 FAIRE
10 S I k e s t i m p a i r ALORS Complexité : Θplogpkqq
11 C Ð C o n c a t ( ” 1 ” , C)
12 SINON
13 C Ð C o n c a t ( ” 0 ” , C)
14 FSI
15 k Ð tk /2u
16 FTQ
17 RENVOYER C
18 FIN
N. Méloni
19/20
Affichage des nombres binaire
1 ALGORITHME N o m b r e B i n a i r e ( n ) :
2 DONNEES
3 n: entier
4 VARIABLES :
5 i : entier
6 C : c h a i n e de c a r a c t e r e s
7 DEBUT
8 i Ð 1 Complexité : Θpn logpnqq
9 TQ i ď n FAIRE
10 C Ð Base2 ( i )
11 AFFICHER (C)
12 i Ð i +1
13 FTQ
14 FIN
N. Méloni
20/20
Affichage avec une file
N. Méloni
21/20
Affichage avec une file
N. Méloni
22/20
Affichage avec une file
1 ALGORITHME N o m b r e B i n a i r e ( n ) :
2 DONNEES
3 n: entier
4 VARIABLES :
5 i : entier
6 C : c h a i n e de c a r a c t e r e s
7 F: f i l e
8 DEBUT
9 i Ð 1
10 E n f i l e r (F ,”1”) Complexité : Θpnq
11 TQ i ď n FAIRE
12 C Ð D e f i l e r (F)
13 AFFICHER (C)
14 E n f i l e r ( C o n c a t (C , ” 0 ” ) )
15 E n f i l e r ( C o n c a t (C , ” 1 ” ) )
16 i Ð i +1
17 FTQ
18 FIN
N. Méloni
23/20