• Aucun résultat trouvé

Les piles

N/A
N/A
Protected

Academic year: 2022

Partager "Les piles"

Copied!
4
0
0

Texte intégral

(1)

Les piles

1- Définition.

2- Utilisation.

3- Primitives de manipulation.

4- Représentation d'une pile par un tableau.

5- Représentation d'une pile par une liste chaînée.

***************************************************

1. Définition :

Pile = collection (ensemble) d'éléments gérée en LIFO (Last In First Out) – stack en anglais- Les ajouts comme les suppressions se font en tête de pile.

Seule l'information de la tête est accessible et traitable.

Exemple : piles d’assiettes ; 2. Utilisations:

(2)

Compilation, gestion des imbrications, autres ...

3. Primitives de manipulation : 1/ Tester si la pile est vide

2/ Accéder au sommet de la pile 3/Empiler un élément :push 4/ Dépiler un élément : pop

4. Représentation contiguë d’une pile :par un tableau Avantage: Les opérations de manipulation sont faciles.

Inconvénient: la hauteur est bornée (allocation statique de la mémoire) 4.1 Façon 1 :

Const tmax= 1000

Type pile=tableau [1..Tmax] d’entier ; Var p :pile ;

sp , y : entier ;

Ecrire une séquence d’instructions pour chaque opération de manipulation Réponse :

1/ Si sp=0 alors écrire (‘pile vide’) ;

2/si sp <>0 alors y := p[sp] sinon écrire (‘pile vide’) ;

3/si sp< tmax alors sp :=sp+1 ; p[sp] :=y ; sinon écrire ( ‘ pile pleine’) ; fin ; 4/si sp> 0 alors sp :=sp-1 sinon écrire(‘ pile vide’) ; Fsi ;

4.2 Façon 2 :

(3)

Const tmax=1000 ;

Type pile= enregistrement

Sp :entier ; Cont : [ 1 ..tmax] d’entier ; Fin ;

Var p : pile ; y : entier ;

Ecrire une séquence d’instructions pour chaque opération de manipulation Réponse :

1/ Si p.sp=0 alors écrire (‘pile vide’) ;

2/si p.sp <>0 alors y := p .cont [p.sp] sinon écrire (‘pile vide’) ;

3/si p. sp< tmax alors p.sp:=p.sp+1 ; p.cont[sp] :=y ; sinon écrire ( ‘ pile pleine’) ; fin ; 4/si p.sp> 0 alors p.sp :=p.sp-1 sinon écrire(‘ pile vide’) ; Fsi ;

5. Représentation d’une pile par une liste chainée : Avantage: facile et extensible .

Type pile= ^E

E= enregistrement info : entier ; Suivant : pile ; Fin

Var sp , y : pile ;x : entier ;

Ecrire une séquence d’instructions pour chaque opération de manipulation 1/ si sp= nil alors écrire ( ‘ liste vide’) ;

(4)

2/si sp<> nil alors x := sp^.v sinon écrire (‘ liste vide’) ; 3/allouer (y) ; y^info := x ; y^.suivant:= sp ; sp := y ;

4/ si sp <> nil alors x := sp^.info ; y := sp ; sp := sp^.suivant ; libérer (y) ;

Références

Documents relatifs

5. Sur la première pile uniquement, en utilisant le vocabulaire introduit, indiquer ce qui arrive aux électrons au niveau de chacune des électrodes en précisant celle

On s’intéresse dans tout ce problème à une suite infinie de lancers d’une pièce équilibrée autour duquel deux joueurs J et J 0 s’affrontent. Le joueur J l’emporte si

 Vu que des ions positifs Zn 2+ apparaissent dans le compartiment « zinc », des ions positifs (ici K + ) viennent dans la solution pour assurer l’électro neutralité.. 3/

Pour supprimer un des fi chiers d’une pile, ouvrez simplement la pile et faites glisser l’élément à l’extérieur, vers l’endroit où vous voulez le déposer.. Pour supprimer

Emplacement de la pile.- Pour ˆetre sˆ ur que le programme et la pile n’interf`erent pas, le microprocesseur i8086 a ´et´e con¸cu de telle fa¸con que le code et les

Exemple.- ´ Ecrivons un programme QBasic qui demande un entier naturel (de deux octets) et fait appel ` a un sous-programme en langage machine qui passe la valeur en

 L'échauffement du mélange montre que cette transformation chimique libère de l'énergie thermique ( sous forme de chaleur)

Alors H est