Module CCGraph.Traverse.Event

module Event: sig .. end

More detailed interface



type edge_kind = [ `Back | `Cross | `Forward ] 
type ('v, 'e) t = [ `Edge of 'e * edge_kind
| `Enter of 'v * int * 'e CCGraph.Traverse.path
| `Exit of 'v ]
A traversal is a sequence of such events
val get_vertex : ('v, 'e) t -> ('v * [ `Enter | `Exit ]) option
val get_enter : ('v, 'e) t -> 'v option
val get_exit : ('v, 'e) t -> 'v option
val get_edge : ('v, 'e) t -> 'e option
val get_edge_kind : ('v, 'e) t ->
('e * edge_kind) option
val dfs : ?tbl:'v CCGraph.set ->
?eq:('v -> 'v -> bool) ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) t CCGraph.sequence_once
Full version of DFS.
eq : equality predicate on vertices
val dfs_tag : ?eq:('v -> 'v -> bool) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) t CCGraph.sequence_once
Full version of DFS using integer tags
eq : equality predicate on vertices