graph-builder
/
graph.go
25 строк · 818.0 Байт
1package graph
2
3// T comparable - имя ноды может быть только типом, поддерживающим операции сравнения
4type Node[T comparable] struct {
5Name T
6Mark byte
7Power int
8}
9
10// AbstractGraph Абстрактное представление графа. Информация хранится в GData, граф задан списком смежности в виде отображения (map) вершин. Вершины заданы структурами Node.
11type AbstractGraph[T comparable] struct {
12Graph map[*Node[T]]map[*Node[T]]int
13Vertexes []*Node[T]
14}
15
16// AdjacencyMatrix матрица смежности.
17type AdjacencyMatrix struct {
18matrix [][]int
19}
20
21func (g *AbstractGraph[T]) Unmark() {
22for _, v := range g.Vertexes {
23v.Mark = 0
24}
25}
26