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  }