efrei/algorithmique/piles-files/file.algo

48 lines
1.1 KiB
Text

Algorithme : Création d'une file
Début
Type Liste : ^cellule
cellule : Enregistrement
val : Entier
suiv : Liste
Fin cellule
File : Enregistrement
Tête : Liste
Queue : Liste
Fin File
Variable F : File
Procédure InitialiserFile(var F : File)
F.Tête <- nil
F.Queue <- nil
FinProcédure
Fonction EstFileVide(var F : File) : Booléen
Si F.Tête = nil Alors
Retourner(Vrai)
Sinon
Retourner(Faux)
FinSi
FinFonction
Procédure Enfiler(var x : Entier, var F : File)
Var Nv : Liste
Allouer(Nv)
Nv^.val <- x
Nv^.suiv <- nil
Si F.Queue != nil Alors
F.Queue^.suiv <- Nv
Sinon
F.Tête <- Nv
FinSi
F.Queue <- Nv
FinProcédure
Procédure Défiler(var x : Entier, var F : File)
Var P : Liste
Si F.Tête != nil Alors
P <- F.Tête
x <- P^.val
F.Tête <- F.Tête^.suiv
Libérer(P)
Sinon
F.Queue <- nil
FinSi
FinProcédure
Fin