val iter : ?pre:(G.V.t-> unit)->?post:(G.V.t-> unit)->G.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. Not tail-recursive.
The function is applied each time a node is reached for the first time, before idoterating over its successors. Tail-recursive.
val fold_component : (G.V.t->'a->'a)->'a->G.t->G.V.t->'a
Idem, but limited to a single root vertex.
Step-by-step iterator
This is a variant of the iterators above where you can move on step by step. The abstract type iterator represents the current state of the iteration. The step function returns the next state. In each state, function get returns the currently visited vertex. On the final state both get and step raises exception Exit.
Note: the iterator type is persistent (i.e. is not modified by the step function) and thus can be used in backtracking algorithms.