tp7 exo9
This commit is contained in:
parent
f39773d967
commit
93992f7bb5
9
tp7/dune
9
tp7/dune
@ -6,12 +6,11 @@
|
||||
(name exo5)
|
||||
(modules exo5)
|
||||
)
|
||||
(library
|
||||
(name exo9)
|
||||
(modules exo9)
|
||||
)
|
||||
(library
|
||||
(name exo10)
|
||||
(modules exo10)
|
||||
)
|
||||
(executable
|
||||
(name test)
|
||||
(modules test)
|
||||
(libraries exo2 exo5 exo10)
|
||||
)
|
||||
|
||||
30
tp7/exo9.ml
Normal file
30
tp7/exo9.ml
Normal file
@ -0,0 +1,30 @@
|
||||
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;;
|
||||
@ -1 +0,0 @@
|
||||
|
||||
Loading…
Reference in New Issue
Block a user