code: func (bfs *bfsIterator) Next() *TreeVertex {
  	if len(bfs.arr) == 0 {
  		return nil
  	}
  	v := bfs.dequeue()
  	for _, u := range v.Descendants {
  		bfs.enqueue(u)
  	}
  	return v
  }
docs: // Next returns the next element in the iteration order,
  // or nil if there is no such an element