4
| Vide | File of int * 'a * 'a t * 'a t;;
8
let rec enl�ve_sommet = function
9
| Vide -> raise File_vide
10
| File(prio, elt, Vide, Vide) -> Vide
11
| File(prio, elt, gauche, Vide) -> gauche
12
| File(prio, elt, Vide, droite) -> droite
13
| File(prio, elt, (File(prio_g, elt_g, _, _) as gauche),
14
(File(prio_d, elt_d, _, _) as droite)) ->
16
then File(prio_g, elt_g, enl�ve_sommet gauche, droite)
17
else File(prio_d, elt_d, gauche, enl�ve_sommet droite);;
19
let extraire = function
20
| Vide -> raise File_vide
21
| File(prio, elt, _, _) as file -> (prio, elt, enl�ve_sommet file);;
23
let rec ajoute file prio elt =
26
File(prio, elt, Vide, Vide)
27
| File(prio1, elt1, gauche, droite) ->
29
then File(prio, elt, ajoute droite prio1 elt1, gauche)
30
else File(prio1, elt1, ajoute droite prio elt, gauche);;