31 lines
654 B
OCaml
31 lines
654 B
OCaml
type 'a fileb = {
|
|
mutable taille : int;
|
|
mutable tete : int;
|
|
mutable queue : int;
|
|
donnees : 'a array
|
|
};;
|
|
|
|
let creer_fileb capacity x = {
|
|
taille=0;
|
|
tete=0;
|
|
queue=0;
|
|
donnees=Array.make capacity x
|
|
};;
|
|
|
|
(* User must make sure that the size isn't bigger than capacity *)
|
|
let enfiler_fileb f x =
|
|
f.donnees.(f.queue) <- x;
|
|
f.queue <- (f.queue + 1) mod Array.length f.donnees;
|
|
f.taille <- f.taille + 1
|
|
;;
|
|
|
|
(* User must make sure that the queue isn't empty *)
|
|
let defiler_fileb f =
|
|
let x = f.donnees.(f.tete) in
|
|
f.tete <- (f.tete + 1) mod Array.length f.donnees;
|
|
f.taille <- f.taille - 1;
|
|
x
|
|
;;
|
|
|
|
let est_vide_fileb f = f.taille <= 0;;
|