package containers-data

  1. Overview
  2. Docs
type ('v, 'e) path = ('v * 'e * 'v) list
val generic : tbl:'v set -> bag:'v bag -> graph:('v, 'e) t -> 'v iter -> 'v iter_once

Traversal of the given graph, starting from a sequence of vertices, using the given bag to choose the next vertex to explore. Each vertex is visited at most once.

val generic_tag : tags:'v tag_set -> bag:'v bag -> graph:('v, 'e) t -> 'v iter -> 'v iter_once

One-shot traversal of the graph using a tag set and the given bag.

val dfs : tbl:'v set -> graph:('v, 'e) t -> 'v iter -> 'v iter_once
val dfs_tag : tags:'v tag_set -> graph:('v, 'e) t -> 'v iter -> 'v iter_once
val bfs : tbl:'v set -> graph:('v, 'e) t -> 'v iter -> 'v iter_once
val bfs_tag : tags:'v tag_set -> graph:('v, 'e) t -> 'v iter -> 'v iter_once
val dijkstra : tbl:'v set -> ?dist:('e -> int) -> graph:('v, 'e) t -> 'v iter -> ('v * int * ('v, 'e) path) iter_once

Dijkstra algorithm, traverses a graph in increasing distance order. Yields each vertex paired with its distance to the set of initial vertices (the smallest distance needed to reach the node from the initial vertices).

  • parameter dist

    distance from origin of the edge to destination, must be strictly positive. Default is 1 for every edge.

val dijkstra_tag : ?dist:('e -> int) -> tags:'v tag_set -> graph:('v, 'e) t -> 'v iter -> ('v * int * ('v, 'e) path) iter_once
module Event : sig ... end
OCaml

Innovation. Community. Security.