Liste, Pile et FileLes piles
Dans cette partie nous allons analyser une nouvelle structure de données : les piles.
Les piles sont extrèmement utiles en informatique et vous les utilisez quotidiennement, parfois même sans vous en rendre compte :
- La fonction annuler
Ctrl-Z
de votre traitement de textes par exemple est une pile : Quand vous tapezCtrl-Z
, vous annulez la dernière opération effectuée. Quand vous faites une nouvelle opération, celle-ci est mémorisée au sommet de la pile. Vous ne pouvez pas annuler l'avant dernière opération sauf à annuler la dernière. - Le bouton retour de votre navigateur internet fonctionne également à l'aide d'une pile. Les pages web consultées lors de votre navigation sur une page sont empilées et le bouton retour permet d'accéder à la dernière page présente sur la pile.
- Certaines calculatrices fonctionnent à l'aide du'une pile pour stocker les arguments des opérations : c'est le cas de beaucoup de calculatrices de la marque HP, dont la première calculatrice scientifique ayant jamais été produite : la HP 35 de 1972.
Une pile est une liste particulière ou l'on accède uniquement au dernier élément que l'on nomme le sommet de la pile.
Le dernier élément entré est le premier à sortir.
Représentation
On représente en général cette structure sous forme verticale.
L'interface
Les opérations permises sur les piles sont plus simples que sur les listes. Voici les quelques primitives des piles :
Les primitives
- creer : créer une pile vide
- empiler un nouvel élément (ajouter un élément au sommet de la pile)
- dépiler le dernier élément saisi
- de consulter la valeur de l'élément au sommet de la pile sans le dépiler
- de tester si la pile est vide
- de connaître le nombre d'éléments dans la pile. :::
Exercice
On contruite une pile avec les instructions suivantes :
- créer une pile vide nommée
p
- empiler "R" dans
p
- empiler "U" dans
p
- empiler "O" dans
p
- empiler "J" dans
p
- empiler "B" dans
p
- empiler "R" dans
p
- depiler
p
- depiler
p
- empiler "N" dans
p
- empiler "O" dans
p
- empiler "O" dans
p
- depiler
p
- empiler "B" dans
p
La pile représentant le résultat de ces instructions sera
L'implémentation
Pour l'implémentation en python c'est dans le TD que ça se passe :
Accéder au TD
Entrer le code de fin de TD :
Dans cette partie nous allons analyser une nouvelle structure de données : les piles.
Les piles sont extrèmement utiles en informatique et vous les utilisez quotidiennement, parfois même sans vous en rendre compte :
- les serveurs d'impression, qui traitent ainsi les requêtes dans l'ordre dans lequel elles arrivent, et les insèrent dans une file d'attente (dite aussi queue ou spool) ;
- les serveurs web traitent aussi les requêtes dans l'ordre dans lequel elles arrivent;
- Certains ordonnanceurs dans un système d'exploitation, qui doivent accorder du temps-machine à chaque tâche, sans en privilégier aucune ;
Une file est une liste particulière ou l'on accède uniquement à l'élément le plus ancien (qui a été placé en premier).
Représentation
On représente en général cette structure sous forme horizontal.
L'interface
Comme pour les piles, les primitives des files se trouvent en nombre réduit.
Les primitives
Les opérations permises sur les files sont équivalentes à celle des listes :
- creer : créer une file vide
- enfiler un nouvel élément (ajouter un élément au sommet de la pile)
- défiler le premier élément saisi
- de consulter le premier élément de la file sans le défiler
- de tester si la file est vide
- de connaître le nombre d'éléments dans la file. :::
Exercice
On contruite une pile avec les instructions suivantes :
- créer une file vide nommée
p
- enfiler "A" dans
p
- enfiler "B" dans
p
- enfiler "C" dans
p
- enfiler "D" dans
p
- enfiler "E" dans
p
- enfiler "F" dans
p
- enfiler "G" dans
p
- enfiler "H" dans
p
- enfiler "I" dans
p
- défiler
p
- défiler
p
- défiler
p
- défiler
p
- enfiler "S" dans
p
- défiler
p
- défiler
p
- enfiler "N" dans
p
- défiler
p
- défiler
p
Représenter la file obtenue :
L'implémentation
Pour l'implémentation en python c'est dans le TD que ça se passe :
Accéder au TD
Entrer le code de fin de TD :