aoc2020/graph_sig.ml

22 lines
518 B
OCaml

module type OrderedType = Set.OrderedType
module type S = sig
type label
type ('v, 'e) t
type 'v vertex := label * 'v
type 'e edge := label * label * 'e
val make: 'v vertex list -> 'e edge list -> ('v, 'e) t
val make': label list -> 'e edge list -> (label, 'e) t
val make_e: 'e edge list -> (label, 'e) t
val count_vertices: ('v, 'e) t -> int
val count_edges: ('v, 'e) t -> int
val rev: ('v, 'e) t -> ('v, 'e) t
val iter_dfs: ('v -> 'v -> 'e -> unit) -> ('v, 'e) t -> label -> unit
end