module CCDeque:sig
..end
This structure provides fast access to its front and back elements,
with O(1) operations
type 'a
t
exception Empty
val create : unit -> 'a t
val clear : 'a t -> unit
val is_empty : 'a t -> bool
val equal : ?eq:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
equal a b
checks whether a
and b
contain the same sequence of
elements.eq
: comparison function for elementsval compare : ?cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
compare a b
compares lexicographically a
and b
cmp
: comparison function for elementsval length : 'a t -> int
val push_front : 'a t -> 'a -> unit
val push_back : 'a t -> 'a -> unit
val peek_front : 'a t -> 'a
Empty
if emptyval peek_back : 'a t -> 'a
Empty
if emptyval take_back : 'a t -> 'a
Empty
if emptyval take_front : 'a t -> 'a
Empty
if emptyval append_front : into:'a t -> 'a t -> unit
append_front ~into q
adds all elements of q
at the front
of into
O(length q) in timeval append_back : into:'a t -> 'a t -> unit
append_back ~into q
adds all elements of q
at the back of into
.
O(length q) in timeval iter : ('a -> unit) -> 'a t -> unit
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
type'a
gen =unit -> 'a option
type'a
sequence =('a -> unit) -> unit
val of_seq : 'a sequence -> 'a t
val to_seq : 'a t -> 'a sequence
val of_gen : 'a gen -> 'a t
of_gen g
makes a deque containing the elements of g
val to_gen : 'a t -> 'a gen
val add_seq_front : 'a t -> 'a sequence -> unit
add_seq_front q seq
adds elements of seq
into the front of q
,
in reverse order.
O(n) in time, where n
is the number of elements to add.val add_seq_back : 'a t -> 'a sequence -> unit
add_seq_back q seq
adds elements of seq
into the back of q
,
in order.
O(n) in time, where n
is the number of elements to add.val copy : 'a t -> 'a t
val of_list : 'a list -> 'a t
val to_list : 'a t -> 'a list
val to_rev_list : 'a t -> 'a list
type'a
printer =Format.formatter -> 'a -> unit
val print : 'a printer -> 'a t printer