CGL::AdjacencyHash(V, W, L)
Reusable adjacency list representation for an AnyGraph.
Uses a hash table to associate each vertex V with a set of adjacent
vertices. The set is backed by another hash table that can be used to store
arbitrary data of type L and a weight of type W with each edge.
Constructors
new(vertices : Enumerable(V) | Nil = nil, edges : Enumerable(Tuple(V, V)) | Nil = nil, weights : Enumerable(W) | Nil = nil, labels : Enumerable(L | Nil) | Nil = nil, *, default_weight : W | Nil = nil, &block : -> L | Nil)
Sourcenew(vertices : Enumerable(V) | Nil = nil, edges : Enumerable(Tuple(V, V)) | Nil = nil, weights : Enumerable(W) | Nil = nil, labels : Enumerable(L | Nil) | Nil = nil, *, default_weight : W | Nil = nil, default_label : L | Nil = nil)
Sourcenew(edges : Enumerable(AnyEdge(V)), *, default_weight : W | Nil = nil, default_label : L | Nil = nil)
SourceInstance methods
add_edge(edge : AnyEdge(V))
Sourceadd_vertex(v : V)
Sourceclear
Sourceeach_adjacent(u : V, & : V -> )
Sourceeach_vertex
Sourceeach_vertex
Sourcelabel_of(u : V, v : V) : L | Nil
Sourcelabel_of?(u : V, v : V) : L | Nil
Sourceorder
Sourcevertices
Sourceweight_of(u : V, v : V) : W
Sourceweight_of?(u : V, v : V) : W | Nil
Source