Imperative.S
Signature of imperative graphs.
<b>Edges may be labeled or not</b>:
<b>Vertices may be concrete or abstract</b>:
<b>How to choose between concrete and abstract vertices for my graph implementation</b>?
Usually, if you fall into one of the following cases, use abstract vertices:
In other cases, it is certainly easier to use concrete vertices.
module Concrete (V : Sig.COMPARABLE) : Sig.I 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 Graphs.
Abstract Imperative Unlabeled Graphs.
module ConcreteLabeled (V : Sig.COMPARABLE) (E : Sig.ORDERED_TYPE_DFT) : Sig.I 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 Graphs.
module AbstractLabeled (V : Sig.ANY_TYPE) (E : Sig.ORDERED_TYPE_DFT) : Sig.IM with type V.label = V.t and type E.label = E.t
Abstract Imperative Labeled Graphs.