efrei/algorithmique/piles-files/file.algo

49 lines
1.1 KiB
Text
Raw Normal View History

2021-09-06 15:26:16 +02:00
Algorithme : Création d'une file
Début
2021-10-22 21:35:16 +02:00
Type Liste : ^cellule
cellule : Enregistrement
val : Entier
suiv : Liste
Fin cellule
File : Enregistrement
Tête : Liste
Queue : Liste
Fin File
2021-09-06 15:26:16 +02:00
Variable F : File
Procédure InitialiserFile(var F : File)
2021-10-22 21:35:16 +02:00
F.Tête <- nil
F.Queue <- nil
2021-09-06 15:26:16 +02:00
FinProcédure
Fonction EstFileVide(var F : File) : Booléen
2021-10-22 21:35:16 +02:00
Si F.Tête = nil Alors
2021-09-06 15:36:51 +02:00
Retourner(Vrai)
2021-10-22 21:35:16 +02:00
Sinon
Retourner(Faux)
2021-09-06 15:36:51 +02:00
FinSi
2021-09-06 15:26:16 +02:00
FinFonction
2021-09-06 15:36:51 +02:00
Procédure Enfiler(var x : Entier, var F : File)
2021-10-22 21:35:16 +02:00
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
2021-09-06 15:26:16 +02:00
FinProcédure
Procédure Défiler(var x : Entier, var F : File)
2021-10-22 21:35:16 +02:00
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
2021-09-06 15:26:16 +02:00
FinProcédure
Fin