Graph.BlocksSourceCommon implementation to persistent and imperative graphs.
HM implementation using hashtbl.
HM implementation using map
Common implementation to all (directed) graph implementations.
All the predecessor operations from the iterators on the edges
Common implementation to all the unlabeled (directed) graphs.
module Labeled
(V : Sig.COMPARABLE)
(E : Sig.ORDERED_TYPE)
(HM : HM with type key = V.t) :
sig ... endCommon implementation to all the labeled (directed) graphs.
The vertex module and the vertex table for the concrete graphs.
Support for explicitly maintaining edge set of predecessors. Crucial for algorithms that do a lot of backwards traversal.
module BidirectionalUnlabeled
(V : Sig.COMPARABLE)
(HM : HM with type key = V.t) :
sig ... endmodule BidirectionalLabeled
(V : Sig.COMPARABLE)
(E : Sig.ORDERED_TYPE)
(HM : HM with type key = V.t) :
sig ... endBuild persistent (resp. imperative) graphs from a persistent (resp. imperative) association table