code: func (q *NodeQueue) Enqueue(n graph.Node) {
  	if len(q.data) == cap(q.data) && q.head > 0 {
  		l := q.Len()
  		copy(q.data, q.data[q.head:])
  		q.head = 0
  		q.data = append(q.data[:l], n)
  	} else {
  		q.data = append(q.data, n)
  	}
  }
docs: // Enqueue adds the node n to the back of the queue.