MutableStack
First in last out stack. This module implements stacks, with in-place modification.
t
REStype t<'a>
make
let make: unit => t<'a>
Returns a new stack, initially empty.
clear
let clear: t<'a> => unit
Discard all elements from the stack.
copy
let copy: t<'a> => t<'a>
copy(x)
O(1) operation, return a new stack.
push
let push: (t<'a>, 'a) => unit
popUndefined
let popUndefined: t<'a> => Js.undefined<'a>
pop
let pop: t<'a> => option<'a>
topUndefined
let topUndefined: t<'a> => Js.undefined<'a>
top
let top: t<'a> => option<'a>
isEmpty
let isEmpty: t<'a> => bool
size
let size: t<'a> => int
forEachU
let forEachU: (t<'a>, (. 'a) => unit) => unit
forEach
let forEach: (t<'a>, 'a => unit) => unit
dynamicPopIterU
let dynamicPopIterU: (t<'a>, (. 'a) => unit) => unit
dynamicPopIter
let dynamicPopIter: (t<'a>, 'a => unit) => unit
dynamicPopIter(s, f)
apply f
to each element of s
. The item is poped before applying f
, s
will be empty after this opeartion. This function is useful for worklist algorithm.