| 123456789101112131415161718192021222324252627282930 |
- package main
- type (
- AdjacencyMatrix map[int]map[int]int
- Graph struct {
- X map[int]Vector
- 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(AdjacencyMatrix)}
- }
- func (G Graph) AddNode(u int, V Vector) {
- G.X[u] = V
- }
- func (G Graph) AddEdge(u, v int) {
- G.A.Modify(u, v, 1)
- G.A.Modify(v, u, -1)
- }
|