sig
type 'e path = 'e list
val generic :
?tbl:'v CCGraph.set ->
bag:'v CCGraph.bag ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val generic_tag :
tags:'v CCGraph.tag_set ->
bag:'v CCGraph.bag ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val dfs :
?tbl:'v CCGraph.set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val dfs_tag :
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val bfs :
?tbl:'v CCGraph.set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val bfs_tag :
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence -> 'v CCGraph.sequence_once
val dijkstra :
?tbl:'v CCGraph.set ->
?dist:('e -> int) ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence ->
('v * int * 'e CCGraph.Traverse.path) CCGraph.sequence_once
val dijkstra_tag :
?dist:('e -> int) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence ->
('v * int * 'e CCGraph.Traverse.path) CCGraph.sequence_once
module Event :
sig
type edge_kind = [ `Back | `Cross | `Forward ]
type ('v, 'e) t =
[ `Edge of 'e * CCGraph.Traverse.Event.edge_kind
| `Enter of 'v * int * 'e CCGraph.Traverse.path
| `Exit of 'v ]
val get_vertex :
('v, 'e) CCGraph.Traverse.Event.t -> ('v * [ `Enter | `Exit ]) option
val get_enter : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
val get_exit : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
val get_edge : ('v, 'e) CCGraph.Traverse.Event.t -> 'e option
val get_edge_kind :
('v, 'e) CCGraph.Traverse.Event.t ->
('e * CCGraph.Traverse.Event.edge_kind) option
val dfs :
?tbl:'v CCGraph.set ->
?eq:('v -> 'v -> bool) ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
val dfs_tag :
?eq:('v -> 'v -> bool) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
end
end