module

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)
Source
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, default_label : L | Nil = nil)
Source
new(edges : Enumerable(AnyEdge(V)), *, default_weight : W | Nil = nil, &block : -> L | Nil)
Source
new(edges : Enumerable(AnyEdge(V)), *, default_weight : W | Nil = nil, default_label : L | Nil = nil)
Source

Instance methods

add_edge(edge : AnyEdge(V))
Source
add_vertex(v : V)
Source
clear
Source
each_adjacent(u : V, & : V -> )
Source
each_adjacent(u : V) : Iterator(V)
Source
each_vertex
Source
each_vertex
Source
has_edge?(u : V, v : V, weight : W, label : L | Nil) : Bool
Source
has_edge?(u : V, v : V, weight, label) : Bool
Source
has_edge?(u : V, v : V) : Bool
Source
has_vertex?(v : V) : Bool
Source
label_block

The block triggered for default edge labels.

Source
label_of(u : V, v : V) : L | Nil
Source
label_of?(u : V, v : V) : L | Nil
Source
labeled?

Whether edges are labeled.

Source
order
Source
size

The number of edges in self.

Source
vertices
Source
weight_of(u : V, v : V) : W
Source
weight_of?(u : V, v : V) : W | Nil
Source
weighted?

Whether edges are weighted.

Source