module Fqueue:sig
..end
Amortized running times assumes that enqueue/dequeue are used sequentially, threading
the changing Fqueue through the calls.
exception Empty
type 'a
t
val test_invariants : 'a t -> unit
val empty : 'a t
val enqueue : 'a t -> 'a -> 'a t
enqueue t x
returns a queue with adds x
to the end of t
. Complexity: O(1)val enqueue_top : 'a t -> 'a -> 'a t
val bot_exn : 'a t -> 'a
Empty
if no element is
found. Complexity: O(1)val bot : 'a t -> 'a option
bot_exn
, but returns result optionally, without exception. Complexity: O(1)val top_exn : 'a t -> 'a
bot_exn
, except returns top (least-recently enqueued element. Complexity:
O(1)val top : 'a t -> 'a option
top_exn
, but returns result optionally, without exception, Complexity: O(1)val dequeue_exn : 'a t -> 'a * 'a t
dequeue_exn t
removes and returns the front of t
, raising Empty
if t
is empty. Complexity: amortized O(1)val dequeue : 'a t -> ('a * 'a t) option
dequeue_exn
, but returns result optionally, without exception. Complexity:
amortized O(1)val discard_exn : 'a t -> 'a t
val to_list : 'a t -> 'a list
to_list t
returns a list of the elements in t
in order from least-recently-added
(at the head) to most-recently added (at the tail). Complexity: O(n)val length : 'a t -> int
complexity: O(1)
val is_empty : 'a t -> bool
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val bin_t : 'a Bin_prot.Type_class.t -> 'a t Bin_prot.Type_class.t
val bin_read_t : 'a Bin_prot.Unsafe_read_c.reader -> 'a t Bin_prot.Read_ml.reader
val bin_read_t_ : 'a Bin_prot.Unsafe_read_c.reader -> 'a t Bin_prot.Unsafe_read_c.reader
val bin_read_t__ : 'a Bin_prot.Unsafe_read_c.reader ->
(int -> 'a t) Bin_prot.Unsafe_read_c.reader
val bin_reader_t : 'a Bin_prot.Type_class.reader -> 'a t Bin_prot.Type_class.reader
val bin_size_t : 'a Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizer
val bin_write_t : 'a Bin_prot.Unsafe_write_c.writer -> 'a t Bin_prot.Write_ml.writer
val bin_write_t_ : 'a Bin_prot.Unsafe_write_c.writer ->
'a t Bin_prot.Unsafe_write_c.writer
val bin_writer_t : 'a Bin_prot.Type_class.writer -> 'a t Bin_prot.Type_class.writer
enqueue t x
returns a queue with adds x
to the end of t
. Complexity: O(1)Empty
if no element is
found. Complexity: O(1)bot_exn
, but returns result optionally, without exception. Complexity: O(1)bot_exn
, except returns top (least-recently enqueued element. Complexity:
O(1)top_exn
, but returns result optionally, without exception, Complexity: O(1)dequeue_exn t
removes and returns the front of t
, raising Empty
if t
is empty. Complexity: amortized O(1)dequeue_exn
, but returns result optionally, without exception. Complexity:
amortized O(1)to_list t
returns a list of the elements in t
in order from least-recently-added
(at the head) to most-recently added (at the tail). Complexity: O(n)