SubTreeMake.1-Ginclude Sig.Gmodule V : Sig.VERTEXVertices have type V.t and are labeled with type V.label (note that an implementation may identify the vertex with its label)
type vertex = V.tEdges have type E.t and are labeled with type E.label. src (resp. dst) returns the origin (resp. the destination) of a given edge.
type edge = E.tval is_empty : t -> boolval nb_vertex : t -> intval nb_edges : t -> intDegree of a vertex
find_edge g v1 v2 returns the edge from v1 to v2 if it exists. Unspecified behaviour if g has several edges from v1 to v2.
find_all_edges g v1 v2 returns all the edges from v1 to v2.
You should better use iterators on successors/predecessors (see Section "Vertex iterators").
Labeled edges going from/to a vertex
Iter on all edges of a graph. Edge label is ignored.
Fold on all edges of a graph. Edge label is ignored.
Each iterator iterator f v g iters f to the successors/predecessors of v in the graph g and raises Invalid_argument if v is not in g. It is the same for functions fold_* which use an additional accumulator.
<b>Time complexity for ocamlgraph implementations:</b> operations on successors are in O(1) amortized for imperative graphs and in O(ln(|V|)) for persistent graphs while operations on predecessors are in O(max(|V|,|E|)) for imperative graphs and in O(max(|V|,|E|)*ln|V|) for persistent graphs.
iter/fold on all successors/predecessors of a vertex.
iter/fold on all edges going from/to a vertex.
val graph_attributes : t -> Graphviz.DotAttributes.graph listVertex attributes
val default_vertex_attributes : t -> Graphviz.DotAttributes.vertex listval vertex_name : V.t -> stringval vertex_attributes : V.t -> Graphviz.DotAttributes.vertex listEdge attributes
val default_edge_attributes : t -> Graphviz.DotAttributes.edge listval edge_attributes : E.t -> Graphviz.DotAttributes.edge listval get_subgraph : V.t -> Graphviz.DotAttributes.subgraph optionThe box (if exists) which the vertex belongs to. Boxes with same names are not distinguished and so they should have the same attributes.