Package graph6 implements graphs specified by graph6 strings.
- func IsValid(g Graph) bool
- type Graph
- func (g Graph) Edge(uid, vid int64) graph.Edge
- func (g Graph) EdgeBetween(xid, yid int64) graph.Edge
- func (g Graph) From(id int64) graph.Nodes
- func (g Graph) GoString() string
- func (g Graph) HasEdgeBetween(xid, yid int64) bool
- func (g Graph) Node(id int64) graph.Node
- func (g Graph) Nodes() graph.Nodes
type Graph string
Graph is a graph6-represented undirected graph.
See https://users.cecs.anu.edu.au/~bdm/data/formats.txt for details and https://hog.grinvin.org/ for a source of interesting graphs in graph6 format.
Output: Number of nodes: 9 Adjacency: 0:  1: [5 6] 2: [3 7] 3: [2 5 8] 4: [6 7 8] 5: [0 1 3 8] 6: [1 4 7 8] 7: [2 4 6 8] 8: [3 4 5 6 7]
Encode returns a graph6 encoding of the topology of the given graph using a lexical ordering of the nodes by ID to map them to [0, n).
Edge returns the edge from u to v, with IDs uid and vid, if such an edge exists and nil otherwise. The node v must be directly reachable from u as defined by the From method.
func (Graph) EdgeBetween ¶
EdgeBetween returns the edge between nodes x and y with IDs xid and yid.
From returns all nodes that can be reached directly from the node with the given ID.
func (Graph) HasEdgeBetween ¶
HasEdgeBetween returns whether an edge exists between nodes with IDs xid and yid without considering direction.
Node returns the node with the given ID if it exists in the graph, and nil otherwise.