// Simple usage example that inserts the numbers 0, 1, 2 into a queue and then // removes them one by one, printing them to the standard output. func Example_usage() { // Create a queue an push some data in q := queue.New() for i := 0; i < 3; i++ { q.Push(i) } // Pop out the queue contents and display them for !q.Empty() { fmt.Println(q.Pop()) } // Output: // 0 // 1 // 2 }
// Creates a new random-order bfs structure. func New(g *graph.Graph, src int) *Bfs { d := new(Bfs) d.graph = g d.source = src d.visited = make([]bool, g.Vertices()) d.visited[src] = true d.parents = make([]int, g.Vertices()) d.order = make([]int, 1, g.Vertices()) d.order[0] = src d.paths = make(map[int][]int) d.pending = queue.New() d.pending.Push(src) d.builder = stack.New() return d }