val iter : ?pre:( V.t -> unit ) -> ?post:( V.t -> unit ) -> t -> unit
iter pre post g
visits all nodes of g
in depth-first search, applying pre
to each visited node before its successors, and post
after them. Each node is visited exactly once.
val prefix : ( V.t -> unit ) -> t -> unit
applies only a prefix function
val postfix : ( V.t -> unit ) -> t -> unit
applies only a postfix function
val fold : ( V.t -> 'a -> 'a ) -> 'a -> t -> 'a
Same thing, but for a single connected component
val iter_component :
?pre:( V.t -> unit ) ->
?post:( V.t -> unit ) ->
t ->
V.t ->
unit
val prefix_component : ( V.t -> unit ) -> t -> V.t -> unit
val postfix_component : ( V.t -> unit ) -> t -> V.t -> unit
val fold_component : ( V.t -> 'a -> 'a ) -> 'a -> t -> V.t -> 'a
val has_cycle : t -> bool