github.com/hzck/speedroute@v0.0.0-20201115191102-403b7d0e443f/model/graph.go (about) 1 // Package model provides model structs for a directed weighted graph. 2 package model 3 4 // Graph includes pointers to startNode, endNode and the internal type prioQueue. 5 type Graph struct { 6 startNode *Node 7 endNode *Node 8 } 9 10 // StartNode returns startNode pointer. 11 func (graph *Graph) StartNode() *Node { 12 return graph.startNode 13 } 14 15 // EndNode returns endNode pointer. 16 func (graph *Graph) EndNode() *Node { 17 return graph.endNode 18 } 19 20 // CreateGraph is the constructor for graph taking pointers to startNode and endNode as parameters. 21 func CreateGraph(start, end *Node) *Graph { 22 graph := new(Graph) 23 graph.startNode = start 24 graph.endNode = end 25 return graph 26 }