let extract_min heap =
let (min,h) =
List.fold_left
(fun ((lmin,min),h) (lcur,cur) ->
if lmin<=lcur then
((lmin,min),(lcur,cur)::h)
else
((lcur,cur),(lmin,min)::h)
)
((List.hd heap),[])
(List.tl heap)
in
(min,h)