void bfs(graph g, int start, Edge marked[ ]) Queue q int v, w for i[0..g.num_nodes -1]
marked[i].parent := UNDEF rof q.enqueue(start) marked[start].dist := 0 marked[start].parent := start do q
EMPTY
v := q.dequeue( ) for w
g.adj(v)
if marked[w].parent = UNDEF
marked[w].parent := v marked[w].dist := marked[v].dist +g.cost(v,w) q.enqueue(w) fi rof od end bfs