diff --git a/tp7/dune b/tp7/dune index 8528563..bc07fb4 100644 --- a/tp7/dune +++ b/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) -) diff --git a/tp7/exo9.ml b/tp7/exo9.ml new file mode 100644 index 0000000..d759b0d --- /dev/null +++ b/tp7/exo9.ml @@ -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;; diff --git a/tp7/test.ml b/tp7/test.ml deleted file mode 100644 index 8b13789..0000000 --- a/tp7/test.ml +++ /dev/null @@ -1 +0,0 @@ -