Module Graph__Persistent.Digraph
Persistent Directed Graphs.
include S
module Concrete : functor (V : Graph.Sig.COMPARABLE) -> Graph.Sig.P with type V.t = V.t and type V.label = V.t and type E.t = V.t * V.t and type E.label = unit
Persistent Unlabeled Graphs.
module Abstract : functor (V : Graph.Sig.ANY_TYPE) -> Graph.Sig.P with type V.label = V.t and type E.label = unit
Abstract Persistent Unlabeled Graphs.
module ConcreteLabeled : functor (V : Graph.Sig.COMPARABLE) -> functor (E : Graph.Sig.ORDERED_TYPE_DFT) -> Graph.Sig.P with type V.t = V.t and type V.label = V.t and type E.t = V.t * E.t * V.t and type E.label = E.t
Persistent Labeled Graphs.
module AbstractLabeled : functor (V : Graph.Sig.ANY_TYPE) -> functor (E : Graph.Sig.ORDERED_TYPE_DFT) -> Graph.Sig.P with type V.label = V.t and type E.label = E.t
Abstract Persistent Labeled Graphs.
Bidirectional graphs
Bidirectional graphs use more memory space (at worse the double) that standard concrete directional graphs. But accessing predecessors and removing a vertex are faster.
module ConcreteBidirectional : functor (V : Graph.Sig.COMPARABLE) -> Graph.Sig.P with type V.t = V.t and type V.label = V.t and type E.t = V.t * V.t and type E.label = unit
Imperative Unlabeled, bidirectional graph.
module ConcreteBidirectionalLabeled : functor (V : Graph.Sig.COMPARABLE) -> functor (E : Graph.Sig.ORDERED_TYPE_DFT) -> Graph.Sig.P with type V.t = V.t and type V.label = V.t and type E.t = V.t * E.t * V.t and type E.label = E.t
Imperative Labeled and bidirectional graph.