| 1234567891011121314151617181920212223242526272829303132 |
- package main
- type (
- AdjacencyMatrix map[int]map[int]int
- Graph struct {
- X map[int]Vector
- L map[int]int
- A AdjacencyMatrix
- }
- )
- func (A AdjacencyMatrix) Modify(u, v, w int) {
- if A[u] == nil {
- A[u] = make(map[int]int)
- }
- A[u][v] = w
- }
- func MakeGraph() Graph {
- return Graph{make(map[int]Vector), make(map[int]int), make(AdjacencyMatrix)}
- }
- func (G Graph) AddNode(u int, V Vector, l int) {
- G.X[u] = V
- G.L[u] = l
- }
- func (G Graph) AddEdge(u, v int) {
- G.A.Modify(u, v, 1)
- G.A.Modify(v, u, -1)
- }
|