Vous êtes sur la page 1sur 21

Pile et File

Décembre 2020
Introduction
Introduction
Introduction

Piles
Piles
Introduction
Piles
Introduction
Piles
Introduction
Introduction
Piles
Type LS1= nœud *
Struct nœud
Val: valeur
Next: LS1
FinStruct

Struct Pile
Sommet: LS1
FinStruct
Introduction

Piles
Procedure Init_Pile (Var P : Pile)
Debut
P. Sommet := Nil
Fin
Introduction

Piles
Fonction Pile_vide (P : Pile) : Booleen
Autrement:
Debut
Si P. Sommet = Nil Alors
Fonction Pile_vide (P : Pile): Booleen
Pile_vide := vrai
Debut
Sinon
Pile_vide := P. Sommet = Nil
Pile_vide := faux
Fin
FinSi
Fin
Introduction
Piles
Procedure Empiler (Var P : Pile; X : valeur)
Var
element : LS1
Note : L‘ajout d’une valeur à
Debut une pile revient à une
insertion en début de liste si
element := réserver (typede(nœud)) l’on considère que le sommet
*element.val := X est la tête de la liste.
*element.next :=P. Sommet
P. Sommet := element

Fin
Piles
Procedure Depiler (Var P : Pile, Var X : valeur)
La suppression d’une valeur
Var
dans une pile dynamique
element : LS1
revient à effectuer une
Debut
suppression d’un nœud (le
Si Pile_vide (P) Alors
premier de liste) et à récupérer
Ecrire('Impossible la pile est vide')
dans un paramètre, passé par
Sinon
variable, la donnée
element := P. Sommet
enregistrée.
X := *P.Sommet.val
P. Sommet := *P.Sommet.next
Liberer (element)
FinSi
Fin
Files
Files
Files
Files
Files
Type
LS1 = noeud *
FileStruct noeud
val : valeur
next : LS1
FinStruct

Struct File
Sommet: LS1
Queue : LS1
FinStruct
Files
Procedure Init_File (F : File)
Debut
F. Sommet := Nil
F. Queue := Nil
Fin
Files
Fonction File_vide (F : File) : Booleen
Debut
Si F. Queue = Nil Alors
File_vide := vrai
Sinon
File_vide := faux
FinSi
Fin

Une autre façon plus compacte d’écrire cette fonction est la suivante

Fonction File_vide (F : File) : Booleen


Debut
File_vide := F. Queue = Nil
Fin
Files

L‘ajout d’une valeur à une File dynamique revient à une insertion à la fin de liste avec l’adresse
du dernier élément dans Queue. Le cas d’un enfiler sur file vide nécessite l’initialisation du Début
à l’adresse du nouveau nœud.

Procedure Enfiler (Var F : File ; X : valeur)


Var element : LS1
Debut
element := réserver (taillede(nœud))
* element.val := X
* element.next := Nil
Si File_vide (F) Alors
F.Sommet := element
Sinon
*F.Queue.next := element
FinSi
F. Queue := element
Fin
Files

La suppression d’une valeur dans une file dynamique revient à effectuer une suppression physique d’un
nœud (le premier de liste) et à récupérer dans un paramètre, passé par variable, la donnée enregistrée.

Procedure Defiler (Var F: File, Var X : valeur)


Var element : LS1
Debut
Si File_vide (F) Alors
Ecrire('Impossible la file est vide')
Sinon
element := F. Sommet
X := *F.Sommet.val
F. Sommet := *F.Sommet.next
Si F. Sommet= Nil Alors
F. Queue := Nil
FinSi /* si debut devient Nil cela veut dire que la file a été vidée et Queue doit devenir Nil*/
Liberer (element)
FinSi
Fin

Vous aimerez peut-être aussi